Sorry, my equation for the projected vector is wrong. Should be: projected = incident - surfacenormal * dotproduct(incident, surfacenormal)
And I also forgot to mention that the U and V direction vectors must be in world space, or rather whatever space the rest of the calculations are being done in. > From: [email protected] > To: [email protected] > Date: Thu, 16 Jul 2009 15:02:12 -0700 > Subject: Re: [hlcoders] Anistropic phong hilights > > > Mmm... Well, easiest implementation I can think of... same as normal phong, > but the vector of the incident light (as transformed into the tangent space) > is compared to the grain... sounds like gibberish... > > Use the surface normal of the triangle (or bump map/whatev) to project the > incident light vector (the vector from the light source) onto the surface > plane. > > as vectors: > projected = normalize(incident * (1 - dotproduct(incident, surfacenormal))) > > have a 3-coordinate in a texture, or per vertex, that represents the > direction the "grain" (2 coord) and the anisotropy intensity. Multiply the > tangent space vectors (the local U and V directions as used for texture > mapping) each by the "grain" 2 coord, and add them together. This is the > direction of the "grain" as mapped onto the model in world space. Note that > the grain 2-coord, UVector, and VVector MUST be normalized, unless you want > to waste a LOT of GPU effort. > > grainVector = UVector * grainX + VVector * grainY > > Find the cosine between these two angles: > > weight = absoluteValue(dotproduct(grainVector, projected)) > > This weight value goes from 0 to 1, and a 1 represents an incident light that > is directly along the grain, 0 is perpendicular. Use that as a weight in your > normal phong computations to complete it, along with the "anisotropy > intensity" to determine the two extremes. > > This is just pulled out of my arse, and I've never done this before... so... > Sorry if it's totally messed up, but hopefully it gives you a good idea, and > isn't too incredibly inefficient. There's no trig ops, so it should be pretty > fast... I hope. > > Good luck > > > Date: Wed, 15 Jul 2009 15:32:28 +0200 > > From: [email protected] > > To: [email protected] > > Subject: [hlcoders] Anistropic phong hilights > > > > Hello! > > I want to make a shader with anistropic phong hilights for hair of > > characters in my mod. I have some experience with HLSL, but with this I > > just dont know where to begin. Any help will be appreciated. > > Thanks. > > Jan "Walter" Sluka > > > > _______________________________________________ > > To unsubscribe, edit your list preferences, or view the list archives, > > please visit: > > http://list.valvesoftware.com/mailman/listinfo/hlcoders > > > _______________________________________________ > To unsubscribe, edit your list preferences, or view the list archives, please > visit: > http://list.valvesoftware.com/mailman/listinfo/hlcoders > _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders

