いくつかのメッシュ ファイルを変換するために使用する小さなツールがあります。メッシュ ファイルには、法線が DEC3N または UDEC3 形式で保存されています。それを3つの通常のフロートCPU側に展開するにはどうすればよいですか?
1 に答える
1
ここで説明されています: http://www.khronos.org/registry/gles/extensions/OES/OES_vertex_type_10_10_10_2.txt
Modifications to table 2.9 (Component conversions)
Add the following entries:
GLType Conversion of (x, y, z) Conversion of w
------- ---------------------- ===============
INT_10_10_10_2_OES (2c + 1)/(2^10 - 1) (2c + 1)/(2^2 - 1)
UNSIGNED_10_10_10_2_OES c / (2^10 - 1) c / (2^2 - 1)
したがって、UDEC3 形式の 32 ビット変数 N に法線がある場合、
x = (float)( (N>>22) / ((1<<10) - 1);
y = (float)( ((N>>12) & ((1<<10)-1)) / ((1<<10) - 1);
z = (float)( ((N>>2) & ((1<<10)-1)) / ((1<<10) - 1);
ほとんどの場合、w もアンパックし、xyz を w で除算します。
于 2012-01-20T01:02:30.277 に答える