| Revision: | 2.2 | 
| Committed: | Thu Mar 11 23:16:01 2004 UTC (21 years, 7 months ago) by greg | 
| Branch: | MAIN | 
| CVS Tags: | rad5R4, rad5R2, rad5R3, rad5R0, rad5R1, rad4R2, rad3R7P2, rad3R7P1, rad6R0, rad4R1, rad4R0, rad3R6, rad3R6P1, rad3R8, rad3R9, rad4R2P1, rad4R2P2, HEAD | 
| Changes since 2.1: | +4 -4 lines | 
| Log Message: | Fixed tile texturing in tmesh2rad -- thanks to Marucs Jacobs for the request | 
| # | Content | 
|---|---|
| 1 | { RCSid: $Id: tmesh.cal,v 2.1 2003/03/10 19:38:19 greg Exp $ } | 
| 2 | { | 
| 3 | Interpolate triangle-mesh values using barycentric coordinates. | 
| 4 | |
| 5 | A1 = Major axis (0==X, 1==Y, 2==Z) | 
| 6 | A2 through A10 = Surface normal perturbation matrix | 
| 7 | or: | 
| 8 | A2 through A7 = Lookup in 2-dimensional pattern or texture | 
| 9 | } | 
| 10 | { Get dominant coordinates } | 
| 11 | bu = select(arg(1)+1, Py, Pz, Px); | 
| 12 | bv = select(arg(1)+1, Pz, Px, Py); | 
| 13 | { Compute variables } | 
| 14 | v1 = bu*arg( 2) + bv*arg( 3) + arg( 4); | 
| 15 | v2 = bu*arg( 5) + bv*arg( 6) + arg( 7); | 
| 16 | v3 = bu*arg( 8) + bv*arg( 9) + arg(10); | 
| 17 | { Surface normal perturbation } | 
| 18 | nf = 1/sqrt(v1*v1 + v2*v2 + v3*v3); | 
| 19 | dx = v1*nf - Nx; | 
| 20 | dy = v2*nf - Ny; | 
| 21 | dz = v3*nf - Nz; | 
| 22 | { Tiled texture coordinates } | 
| 23 | u = frac(v1); | 
| 24 | v = frac(v2); |