Alert icon
We're changing our privacy policy. This stuff matters.  Learn more  Dismiss

3D Engine demo 1: 3D BSP Trees

Loading...

Sign in or sign up now!
Alert icon
Upgrade to the latest Flash Player for improved playback performance. Upgrade now or more info.
3,281
Loading...
Alert icon
Sign in or sign up now!
Alert icon

Uploaded by on Jul 10, 2008

Shows my 3D Engine running a sample scene where polygons split by the 3D BSP tree algorithm are assigned a random colour. Shows the effect of my a priori 3D BSP Tree splitting utilities. Facets are split for 3D BSP Tree depth sorting. Note that the engine supports concave polygons, and the BSP trees are full 3D (as opposed to 2D bsp trees used in, say, DOOM). All polygon rendering algorithms (depth sorting, concave polygon rendering, scan line depth sorting) were programmed from scratch, and rendered with my software as opposed to a graphics card. Direct3D and OpenGL and other such tools were NOT used. Note that actual framerates are minimum 30fps, but I needed to slow things down for movie capture.

Category:

Gaming

Tags:

License:

Standard YouTube License

  • likes, 0 dislikes

Link to this comment:

Share to:

Uploader Comments (Wc3UofA)

  • That pretty cool. Question: what's the difference between a bsp tree and an octree? From what I gather a bsp tree sorts out the polygons so that you draw the in the right order (ie. it's used for efficient depth-testing) whereas an octree will quickly tell you what's in your view frustum, no depth-testing (ir does frustum culling).

  • a bsp tree can be used in Nd space; octrees are useful mainly for 3d space. The difference lies in the fact they divide space into 2 vs. 8 regions. Both kinds of trees can be useful for frustum culling. With 3D BSP trees, the information for which 3D convex spaces are visible from any given convex space (tree node) is calculated and stored a priori, so whenever you cross into a new space, you already know what other possible spaces are visible, and what order to draw them in.

  • ahh.. the reason is, having a software renderer that I understand from the ground up, allows me to do certain things not possible with 3D cards (for example, implementing some of the more recent algorithms in computer graphics literature). And yes it was educational. Always nice to understand how everything fits together from the ground up. Also posted as small part of my C.V., but I was disappointed with YouTube's image quality so I've reposted this on a more personal website.

see all

All Comments (4)

Sign In or Sign Up now to post a comment!
  • niiice job.

    Im also doing my own things too, but you did it waaay better

    (using portal rendering, btw)

  • nice work, did floating point precision trip you up? I remeber the first time I done this it took me ages to find why it wasn't working, and then I found out (if you use floating point) that points can't actually coincide with a true mathematical plane(only on a very rare occasion) unless you create a small epsilon value to compare a float to zero.

  • Very cool! Seems that you are reinventing the wheel, though... did you do this for educational reasons?

Loading...
Alert icon
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more