• Content count

  • Joined

  • Last visited

Community Reputation

122 Neutral

About chibitotoro0_0

  • Rank
  1. Skinned Mesh FK Optimization

    is it possible to do this with opengl 1.1 which doesnt have shaders? would using glMultMatrix be faster? because you would have to push the current matrix into stack before you can do the multmatrix which might be slower.
  2. One of the methods I made in XNA before was using the Sobel Operator ( to find all the edges on the screen and to perform a Gaussian blur on the colored image using the pixels on the edge detection mask. First you would using a horizontal convolution blur mask in the first pass and then run it over again using a vertical mask to optimize it rather than using a 3x3 or n x n convolution mask over the whole image. Hope that helps
  3. Hi everyone, I've managed to get a mesh skin bound to some joints and deformed it using Forward Kinematics on the bones. Working on my desktop it's running fast but in a limited memory/resource environment it's not doing so well. I was wondering what ways can I improve the speed of this mesh for animation? Things I do every frame for update: 1. Calculate the pose matrix for each joint after it has moved and propagate the changes down to its child joints. 2. Recalculate the bones' net matrix by multiplying the inverse bind matrix * pose matrix 3. Apply weights * net matrix and apply to corresponding vertex --- This is done every frame. It seems almost redundant but the reason why I'm taking this approach rather than calculating only when the joints move is that like in a lot of games when a character isn't doing anything, its usually bobbing up and down or doing something else to get your attention. Are those animations calculated every frame? or is the action all keyframed and every frame stored in memory? that's a lot of vertex position and normal data that needs to be stored for every frame! and it doesn't allow for interpolation. Any ideas will help. Thanks,
  4. OpenGL few large polys vs many small polys

    Thanks for all the replies! Yes it seems right now that it indeed is a O(n^2) operation. With my previous app rendering it on the iPhone did yield similar results as my computer but my computer at that time was using a NVIDIA 8600GT and now my unibody is using a NVIDIA 9600GT. Both of which are much more powerful than the iPhone 3G video processing and even the A4 chips on the upcoming cards. So is it ok to assume that all openGL ES 1.1 stuff is software based rendering? since the 3G obviously doesn't have a discrete video processor like the 3GS or A4 chip on the 4G?
  5. OpenGL few large polys vs many small polys

    I have one plane being rendered with 2 tris. Regardless of the texture I used (small or large) it get the same FPS switching between the two. If I change the width and height to occupy more space on the screen, FPS drops. If I use a large texture on a small area poly, I still get high FPS.
  6. OpenGL few large polys vs many small polys

    no i am not using mipmaps
  7. OpenGL few large polys vs many small polys

    I think I've narrowed it down to something... I disabled textures and it went back to 60fps. I'm using texparams GL_NEAREST right now. That was faster than GL_LINEAR in my previous app.
  8. OpenGL few large polys vs many small polys

    I tried enabling and disabling GL_DEPTH_TEST. Both yielded same results. I also tried both and stacking a bunch of polys on top of each other and likewise same results. Thanks for the suggestion, but it seems there's something else that's missing from this problem or is this the limitation of 1.1?
  9. OpenGL few large polys vs many small polys

    Thanks for the reply, Right now I'm porting my own OpenGL 1.1 engine, that I made from scratch while making an iPhone 3G app, over to iPad. I know it's possible to use openGL 2.0 on the A4 chip there but I've got more R&D to do with GLSL shaders before i can fully port everything over to 2.0. Seeing how I'm not using anything in 3d for this upcoming app, I don't find a need to upgrade to 2.0 just yet. Right now if I just render a full screen poly (1029x768) to the iPad simulator it drops from 60fps to 30fps. That's using only 2 triangles to form this rectangular polygon. The frame rates go down as I add more smaller polygons to the scene.
  10. Hi everyone, I've been doing some OpenGL 1.1 tests lately and I've come across the problem of getting low frame rates when I fill the viewport with only a few (~16) polys. However, If I shrunk these polys and added like 50 or so using the same orthographic view, it stays at 60 fps. I'm not using blending or anything and textures haven't been enabled yet. But it seems to me that if more pixels of the viewport need to have its color calculated the slower it goes. Is there anyway to speed this up? I'm thinking in terms of other older 2D platform games, where they overlay many layers of backgrounds without taking a big performance hit even with alphas. Thanks
  11. OpenGL Texture is a White Block

    this happens to me when my textures are not of dimensions that are a power of 2...make sure they are 4x4 or 64x128 for example
  12. I'm programming an OpenGL particle system which has a lot of alpha blending involved. In a memory/CPU limited environment this will slow down a lot with all the alpha calculations. My attempted to speed it up is to group particles with same properties together into a single texture and render it onto one billboard. But doing so would required dynamic generation of textures and it would require a new glBindTexture for each group of particles. This seems that it might be slower than actually just drawing the particle individually. Are there any other ways to solve this problem using OpenGL? Thanks for any input or commments.
  13. Simple VBO Rendering problem

    Thanks for the reply! It is outside. I think I pasted it wrong when I made the post. Sorry for the misunderstanding. Any other suggestions?
  14. Hi everyone, I looked up some examples using VBOs but I can't get it to render with the current setup: init(){ GLuint vboIDs[4]; glGenBuffers(4 ,vboIDs); //create 4 vbos //vertices glBindBuffer(GL_ARRAY_BUFFER, vboIDs[0]); glBufferData(GL_ARRAY_BUFFER, blotCount*8, blotVertex, GL_STATIC_DRAW); //textures glBindBuffer(GL_ARRAY_BUFFER, vboIDs[1]); glBufferData(GL_ARRAY_BUFFER, blotCount*8, blotVertex, GL_STATIC_DRAW); //colors glBindBuffer(GL_ARRAY_BUFFER, vboIDs[2]); glBufferData(GL_ARRAY_BUFFER, blotCount*16, blotColor, GL_STATIC_DRAW); //indexes glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vboIDs[3]); glBufferData(GL_ELEMENT_ARRAY_BUFFER, 6*blotCount, blotTriangle, GL_STATIC_DRAW); //reset so other's can draw first glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); } draw(){ glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); //vertices glBindBuffer(GL_ARRAY_BUFFER, vboIDs[0]); glVertexPointer(2, GL_FLOAT, 0, 0); //textures glBindBuffer(GL_ARRAY_BUFFER, vboIDs[1]); glTexCoordPointer(2, GL_FLOAT, 0, 0); //colors glBindBuffer(GL_ARRAY_BUFFER, vboIDs[2]); glColorPointer(4, GL_UNSIGNED_BYTE, 0, 0); //textures glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vboIDs[3]); glDrawElements(GL_TRIANGLES, 6*blotCount, GL_UNSIGNED_SHORT, 0); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); } Where: vertex:137.000000,113.000000,157.000000,113.000000,137.000000,133.000000,157.000000,133.000000 uv:0.000000,0.000000,0.500000,0.000000,0.000000,0.500000,0.500000,0.500000 color:214,50,20,60,214,50,20,60,214,50,20,60,214,50,20,60 index:0,1,2,1,2,3
  15. Max # of Point Sprites 30 fps

    thanks for the reply, mine are already sorted by texture. just as draw elements its not fast enough and I cant get VBOs to work.