Wednesday, January 7, 2009

Archive for the ‘Technology’ Category

Occlusion Culling

Posted by David Fendley On December - 8 - 2008

What is occlusion culling? Let’s break it down.

Occlude: to stop, close up, or obstruct.

Cull: to select from a large quantity.

Occlusion culling is a concept that is crucial to 3D graphics. It is the use of algorithms to select from a large selection of polygons what geometry should be occluded, obscured.

Why?

Let’s take a look at a conventional 3D pipeline.

  1. Application / Scene
    1. Scene/Geometry database traversal
    2. Movement of objects, and aiming and movement of view camera
    3. Animated movement of object models
    4. Description of the contents of the 3D world
    5. Object Visibility Check including possible Occlusion Culling
    6. Select Level of Detail (LOD)
  2. Geometry
    1. Transforms (rotation, translation, scaling)
    2. Transform from Model Space to World Space (Direct3D)
    3. Transform from World Space to View Space
    4. View Projection
    5. Trivial Accept/Reject Culling
    6. Back-Face Culling (can also be done later in Screen Space)
    7. Lighting
    8. Perspective Divide - Transform to Clip Space
    9. Clipping
    10. Transform to Screen Space
  3. Triangle Setup
    1. Back-face Culling (or can be done in view space before lighting)
    2. Slope/Delta Calculations
    3. Scan-Line Conversion
  4. Rendering / Rasterization
    1. Shading
    2. Texturing
    3. Fog
    4. Alpha Translucency Tests
    5. Depth Buffering
    6. Antialiasing (optional)
    7. Display

Note: this is but one example of a conventional 3D pipeline. Pipelines can vary.

As you can see, the conventional 3D pipeline contains a lot of science, math, logic, and engineering that we take for granted. We’re going to be dealing with but one area of this today, and that is the one that has been highlighted: “Object Visibility Check including possible Occlusion Culling”.

Let’s say you have modeled a Dodge Viper in Maya, and it contains roughly one-hundred thousand polygons. You may be inclined to think that one-hundred thousand polygons isn’t too difficult for a modern computer to render in real time, and in thinking so you would be right. However, what if you want ten of your Dodge Viper models onscreen at once? You are now sending one million polygons to your rendering pipeline.

Without the aid of occlusion culling, your hardware would be rendering one million polygons. This can be a strain depending on the hardware you’re dealing with. Either way, this is considerably more computationally intensive and time consuming than say rending three-hundred thousand polygons.

Occlusion culling mitigates the overhead involved in rendering a scene such as this. While algorithms may vary, a simple solution can be imagined with the following pseudo-code:

  1. Determine the camera’s (user’s) field of view.
  2. From the camera, project a vector towards every point within the its field of view.
  3. If that vector comes into contact with a polygon, mark that polygon as visible.
  4. Render all visible polygons.

Instead of rendering all polygons, whether visible or not, only visible polygons are rendered. This process adds an overhead of its own, however the performance gained offsets this overhead considerably.

This technology is available to all sorts of mediums: film, video games, and research to name a few. Now the next time you are working with or enjoying something that involves 3D graphics, you can truly appreciate the science and hard work that have gone into such prolific technology.

I shall leave you with this: Umbra Software’s occlusion culling tech demo — quite impressive.


Passwordless Authentication with MyOpenID.com

Posted by David Fendley On August - 27 - 2008

OpenID is a great way to simplify the authentication and registration process. Using SSL, you can make authentication even easier by no longer requiring a password to login.

If you use MyOpenID.com as your OpenID provider, login at MyOpenID.com, go to “Account Settings”, then “Authentication Settings”. Under “Add an SSL Client Certificate”, enter a name for the computer your on and click, “Create Certificate”. This will install a SSL certificate in your browser that will automatically identify you when visiting MyOpenID.com.

A word of advise, do not use this method on a public or shared computer. Anyone that has access to your computer will have access to your MyOpenID.com account.

Linux: Gimped No More

Posted by David Fendley On February - 20 - 2008

The Gimp is a great program for what it is, but it is severely lacking when compared to the likes of Photoshop. Google has announced that it is funding Codeweavers and their iteration of Wine, the Windows compatibility layer, in order to further promote Linux by offering in-demand, high-end, commercial software.

It has been reported that Photoshop runs quite well under Wine. Does the future of application deployment lie in virtual machines and compatibility layers? Or will there always be demand for native versions of these applications?

VIM: The Greatest Editor

Posted by David Fendley On January - 16 - 2008

Last year I bought the first MacHeist which contained a copy of TextMate. TextMate is by far one of the best editors that I’ve ever used, and as an OS X only app, has been the envy of other platform users.

But it still can’t touch VIM. VIM is my editor of choice. While TextMate boasts a great UI and killer bundles and customization, VIM has had this for 15 years. Just take a look around vim.org — there’s a script for nearly everything. This very post was written and submitted with a VIM plugin.

My number one reason for switching back to VIM: keyboard orientation. If you write a lot of code like myself, you don’t want to keep reaching for the mouse or even the arrow keys. VIM’s setup and design keeps your fingers happy right at home. It’s also available for many platforms. I invite you to check it out at vim.org.

Mac Attack

Posted by David Fendley On September - 25 - 2007

I find it rather humorous when Windows advocates try to debunk Mac OS X, and it’s affiliated software, by ragging on it due to a recent security exploit found.

This is hypocrisy at it’s finest, and any true digerati knows that there is no such thing as flawless code and security.

Enough said.

CNET And LivePlasma

Posted by David Fendley On October - 16 - 2006

Have you ever been to Cnet.com and noticed the Flash map on the right hand side as you are reading an article? This map allows you to see how events and articles are related to each other. While Cnet has had this feature for some time, I took the time to check out the Flash map’s creator: LivePlasma.com.

LivePlasma.com is currently a beta service that allows you to see networks of your favorite movies and music, spanning artists and directors. Click a director’s name and you can see their movies and other related works of art. Add a title to your favorites and LivePlasma will generate your own network map for you.

Since it’s only a beta, you are limited to how many titles you can add to your favorites. However, this could prove to be a next-gen visual method for finding additional movies and music that cater to your tastes.

Commercially Cloning Cats No More

Posted by David Fendley On October - 16 - 2006

The biotech company, Genetic Savings and Loan, will be refunding it’s customers $50,000 fees for having their cats cloned as they close their doors this year. After six years of research, the technology has not advanced enought to make cloning pets comercially viable.

For some this raises huge ethical debates. As cloning advances, it is only a matter of time before a human is cloned. Is cloning the wave of the future? Or is it as unethical as playing God?

Yahoo To Release Its “Crown Jewels”

Posted by David Fendley On October - 1 - 2006

Yahoo has announced that in late 2006 it will release its browser-based authentication system for free. This will prove to be a great asset to those looking to add well written authentication methods to their web-based applications.

Sony: The Final Nail In The Coffin

Posted by David Fendley On September - 29 - 2006

On top of the slew of reasons why the PS3 will fail and will push Sony into chapter 11, Sony has recently ensured this final destination. While many PS2 games fell within the $40-$50 price range, many PS3 titles will be priced from $75-$100. In addition, the $100 price cut that Japan will see on the low-end PS3 model will not be offered outside that market. Some analysts feel that such a price cut is a sign of weakness.

Rumors have also been circulating regarding the PS3s DRM. Rumor has it that PS3 titles will be serialized and will lock down to the first console that they are played in, effectively eliminating the possibility of rentals. This also removes basic consumer rights, such as the ability to sell, trade, and loan PS3 titles. If such rumors prove to be true, Sony will have to rely on the ignorance of the average consumer in order to move consoles. With a $600 price tag I just don’t see that happening.

Make My Zune Poop-Color, Please!

Posted by David Fendley On September - 28 - 2006

Brown ZuneForget the black and white zunes, I want mine poop-colored. I love earthy tones, but this is rediculous. People with brown zunes are merely going to be the new target for playground and corporate bullies. With nearly every Microsoft product being a rehash of another already existing product, I guess this is how Microsoft felt it could achieve its solidarity in the portable media player marketplace. If at any point Apple felt threatened by the Zune, their fears have since been laid to rest.

One Step Closer

Posted by David Fendley
Nov-22-2008 I

Envy, I Adore You

Posted by David Fendley
Nov-2-2008 I

Therapy

Posted by David Fendley
Oct-2-2008 I

Less God, More Present

Posted by David Fendley
Sep-6-2008 I

Latest Email to Hostway.com

Posted by David Fendley
Aug-26-2008 I