好吧,所以我想讓CSHARP Lightwave 3D模型轉換器將我的LWO轉換爲Javascript對象。到目前爲止,我有程序工作的膽量,我很高興。但是我從二進制文件導出UV時遇到了麻煩。閱讀Lightwave LWO二進制文件,UV問題
這是LWO二元我的參考材料: http://www.gpwiki.org/index.php/LWO
出於測試目的,我使用的是單一的方形模型兩個三角形,連得六分。所以你可能已經熟悉了,我得到的紋理UV塊看起來像這樣的HEX(帶註釋逗號,和ASCII翻譯):
[V] [M] [A] [P]
00 00 00 4C
[T] [X] [U] [V]
00 02
[t] [e] [s] [t] [.] [p] [n] [g]
00 00
00 00, 3E FD FD FD, 3E FD FD FD,
00 01, 3F 2A FD FD, 3E FD FD FD,
00 02, 3E FD FD FD, 3F 2A FD FD,
00 03, 3F 2A FD FD, 3E FD FD FD,
00 04, 3F 2A FD FD, 3F 2A FD FD,
00 05, 3E FD FD FD, 3F 2A FD FD
現在,據我聯繫有關的文件,那轉化爲以下。如果你想自己翻譯這個,我發現這是一個方便的工具,用於將32位HEX轉換爲IEEE 754單浮點。
http://www.h-schmidt.net/FloatApplet/IEEE754.html
LWO UV二進制翻譯:
VMAP
76
TXUV
2
test.png
0
0, 0.4960784, 0.4960784
1, 0.6679380, 0.4960784
2, 0.4960784, 0.6679380
3, 0.6679380, 0.4960784
4, 0.6679380, 0.6679380
5, 0.4960784, 0.6679380
見,直到你在光波比較UV位置與實際位置,這看起來足夠健康:
0, 0.3333333, 0.3333333 or (33.33333%)
1, 0.6666667, 0.3333333
2, 0.3333333, 0.6666667
3, 0.6666667, 0.3333333
4, 0.6666667, 0.6666667
5, 0.3333333, 0.6666667
你可以看到,二進制文件並不是那麼遙遠,但它足以讓所有的差異,尤其是當內涵是出口成千上萬的這些搗蛋鬼。現在我可以看到這種差異沒有模式。
我目前的理論是,這些數字不是IEEE754格式。但所有其他的價值觀,爲什麼這些不同。有什麼我失蹤?爲了得到更多的幫助,這裏有一些其他的測試值。
Lightwave => Binary
0.00000000 => 0.00000000
0.25000000 => 0.49414062
0.40000000 => 0.49607840
0.50000000 => 0.50000000
0.70000000 => 0.70000000
1.00000000 => 1.97656250
看起來有些是正確的,而其他的只是......非常錯誤。感謝您抽出時間閱讀這個問題,我很欣賞它非常長且密集的數字。任何幫助將是太棒了! enter code here
謝謝,目前我正在使用不同的格式。但是我會在某個時候回到這裏! –