Advertisement Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

399 Neutral

About GFalcon

  • Rank
  1. GFalcon

    Global illumination techniques

      Do you know why they gave up on it ? Voxel cone tracing seemed very promising to me, even for the  incoming "next gen".
  2. Thanks for the reply. That is what I thought ... well ... time to review my mesh reader then, to split those vertices ;) By the way thanks for the link in your signature (on transparency in deferred shader), I'll soon need it I think
  3. Hi, First here is a picture to present my problem : [sharedmedia=core:attachments:9558] I have two triangles (A, B, D) and (B, C, D) with the following texture coordinates (red arrows illustrate the texture "direction") : A = (0, 0) B = (1, 0) C = (0, 0) D = (1, 1) I am calculating the tangent vector for these four vertices, for which i find (W used to store information about handedness) : Tangent at A = (1, 0, 0, 1) Tangent at B = (0, -1, 0, -1) Tangent at C = (-1, 0, 0, -1) Tangent at D = (0, -1, 0, -1) (I am using the method described at My problem is for B and D vertices. I understand why I found these tangent vectors (because of the changing direction of the texture at these vertices my tangents), but how can I resolve this issue. Do I have to "split" B vertex into B1 and B2 (and D vertex also) so that they can each have a correct tangent vector ? Or is there another solution (maybe I am missing something here ?). (The objective is to do normal mapping, I have it working quite well but problems appear on those vertices where texture is changing direction. I am using Sponza Atrium model from CryTek).
  4. I'm not intensly familiar with SVO, but really, whoever you quoted above has no grasp of reality it seems. Not using multiplication and division does not make it impressive by itself, also note, the core algorithm. Meaning, going along a ray and traversing an octree. Going along a ray can be done using a variation's_line_algorithm ... and holy shit! It doesn't use division and multiplication other than for precomputing some values! Bresenham's line algorithm sure is modern day rocket science it seems. So, let's step back, and look at the problem... we have a RAY and an OCTREE, and our intention is to find the first node in the octree the ray hits, to get the pixel color... so: 1. Step along the ray using some algorithm (bresenham's line algorithm perhaps?) 2. For each step, check the corresponding octree node, if empty go to 1, exit if solid 3. Recurse one level down into the octree, go to 1 A bit simplistic yes, but unless I'm missing something, then that is the "core algorithm"... and no I don't see any unicorn in there. Just to be clear though, this is one way of implementing it, there are likely a lot better ways, but it wouldn't suprise me if this is what they actually use, just a bit optimized. [/quote] I also thought about Bresenham's algorithm applied to it yesterday, but it might need a lot of (small) steps along the ray to check the octree nodes ... but why not. For sure, if their "core algorithm" is done this way there are no unicorn here, I agree on that Well even if they say they are not using ray casting, I begin to think that in fact they are. Maybe, they just call it differently because they are not doing it the usual way.
  5. That boggles my mind also, so I did some research over internet about their algorithm. Didn't find much, but this post is quite interesting : http://www.somedude.....php?f=12&t=419 To quote the post : I'd like to mention Unlimited Detail, a technology developed by Bruce Dell, which does in fact do exactly what he claims it does... Render incredibly detailed 3D scenes at interactive frame rates... without 3D hardware acceleration. It accomplishes this using a novel traversal of a octree style data structure. The effect is perfect occlusion without retracing tree nodes. The result is tremendous efficiency. I have seen the system in action and I have seen the C++ source code of his inner loop. What is more impressive is that the core algorithm does not need complex math instructions like square root or trig, in fact it does not use floating point instructions or do multiplies and divides![/quote] So it seems they are relying on some "octree like" data structure (as many supposed). What is boggling me the most is the fact their algorithm isn't using multiplies or divides or any other floating point instructions (as they say). Is there a way to traverse an octree (doing tree nodes intersection tests) only with simple instructions ? I don't see how (I only know raycasting, and it seems difficult for me to do this without divides, I know that other ways to render an octree exist but I do not know how they work).
  6. GFalcon

    opengl to opengl es code

    The way I see the difference between glBegin/End, glDraw and VBO : - glBegin / glEnd : A lot of function calls is needed - glDraw : It is the same as glBegin, but reduce considerably the number of function calls - VBO : Reduce bus activity (only if your geometry is static maybe ? because if it is dynamic you'll have to transfer data each time) I've seen some interesting bechmarks about it, for geometry composed of hundreds of thousand (and more) polygons, you can esperate a ratio of 3 to 4 time faster. However, for a lower count of polygons you will not see great performance differences.
  7. GFalcon

    opengl to opengl es code

    Hi, glDrawArrays and glDrawElements work fine, but VBO is another way to do it, and more efficiently. Here is an article about it (in French s'il vous plait ;)) :§ion_id=1&p=tutorial&action=showtut&id=244 Bye
  8. You might also be interested by function-try-blocks if you want to use exceptions in constructors, see this for example: Hope it helps you ;)
  9. Hi, what kind of errors do you want to handle in constructors ?
  10. It is as Erik said, and it is also used to initialize members which are references : class MyClass { public: MyClass(std::string& myRefToObj) : m_myRefToObj(myRefToObj) {} std::string& m_myRefToObj; };
  11. GFalcon

    Short story of my webgame

    I like it. Not too long and not too short. Nice one.
  12. GFalcon

    Somebody help......

    Check if you have included windows.h before gl.h
  13. GFalcon

    [c++] Crash with an iterator

    Quote:Original post by GFalcon Maybe your problem is inside IGroup destructor. I had a good intuition. Happy that you solved your problem.
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!