Wednesday, May 12, 2010

A Little Demo


I hope my voice isn't too annoying. :-/

Saturday, May 8, 2010

Well, that's lovely.

Goal: Texture support for the loaded head OBJs

Remaining Goals

Before the final submission on the 11th, here is what I hope to achieve:
  • Texture support for the loaded head OBJs.
  • Shader for hair strips based on the lookup textures that I made for 660. Take a gander! Yes, I'm thinking about scrapping the LODs (I can leave support for them in the code base, but they look quite ugly and don't improve the program running time as much as I thought they would; since the 660 results look okay, I can try to use them for shading thick GL_LINES and see how those results compare to the LOD clusters).
  • Additional Bullet soft body constraints to prevent the hairs from swiveling at their roots. I'm going to try appending an additional link that connects the second node of each strand back to the head (i.e. this isn't as simple as calling a "SetConstraint()" method; I'll have to get a little creative to pull off the effect).
  • Faster simulation times. I'm not sure how to do this at the moment; since the current Bullet library doesn't have CUDA support, I'll have to think of some other way to speed things up. Maybe by fixing memory leaks? Maybe by using multithreading (I don't even really know if that's applicable in this case, but it sure made Kaikai's ray tracer into a speeding bullet).

Monday, May 3, 2010

Still Posting!

Oh look, it's a lookup table for the longitudinal component of Marschner's scattering model. Isn't that the cutest thing you've ever seen? It's not too far off from the one used by NVIDIA in their Nalu demo. Maybe there is hope for writing a hair shader after all (instead of cheating with LODs).

Saturday, May 1, 2010

System Overview

Forgot to post this; it's the spiffy (simplified) system overview that I showed in my presentation!

Friday, April 30, 2010

Final Presentation Videos

Here are the results that I showed at the presentation today. I really, really want to keep refining the project to get higher quality results by the time the final write-up is due. But, I'm going to have to switch gears over to finishing the 660 shader first. As you can see, I wasn't able to get the 660 shader working in time to color the hair strands, so I made a hasty decision to get LOD clusters working. They look kind of silly (perhaps if they were textured, they would look better). Another sore spot is the unconstrained hair movement at the point where each Bullet rope is anchored to the collider. I've searched through the Bullet API for a way to constrain the anchor "swing", but after hours of trying different parameters, this is what I ended up getting. Also, note that these videos were not recorded in real time (~3x the original speed). Terrible, I know.



I've learned a lot from this project, even if the results don't match up to what I set out to do. (Especially with regard to stitching together a lot of different APIs, in this case OpenGL, FLTK, OpenMesh, Bullet, (a Timer class), and the ConvexHullDecomposition library). There was a lot that I didn't put into my presentation...I didn't leave myself enough time to make it. But, I suppose since our presentations were supposed to only be 10 minutes, this was a "blessing" in disguise.

Wednesday, April 28, 2010

That Blasted 660 Shader!

Blast! This does not look like hair! What is that crazy random highlight on the side? I wanted to show what I've been working on, though.