版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、這mini-HOWTO解釋了如何在FlightGear中添加3d飛機(jī)模型FlightGear,以及這些模型如何動畫和地位。不需要c+編程,但是用戶需要FlightGear的一些知識產(chǎn)權(quán)制度和XML標(biāo)記,并將需要了解FlightGear使用坐標(biāo)系統(tǒng)的模型:.在米的距離.角在度.x軸縱向運(yùn)行,向后面.y軸橫向運(yùn)行,向右邊.z軸向上運(yùn)行.標(biāo)題是在z軸旋轉(zhuǎn),正面是順時針從上面.音高是一個繞y軸旋轉(zhuǎn),正面是順時針從左邊.輥繞x軸旋轉(zhuǎn),正面是順時針從背后看到的關(guān)于HThis mini-HOWTO包含三個部分:1、加載模型2、重新定位模型3、動畫模型1、 加載模型通過OpenSceneGraph Fligh
2、tGear支持許多不同的3 d文件格式,包括VRML2 AC3D,DXF,和許多其他格式。性能/ sim /模型/路徑在主FlightGear屬性樹控制模型將被加載;它需要從FG_ROOT得到一個字符串值給模型的相對路徑(基地的根包,如/usr/local/lib/FlightGear或C: FlightGear )。加載一個新模型的最簡單方法是在啟動時設(shè)置的屬性道具:命令行選項(xiàng);例如,使用3d飛機(jī)模型,您已經(jīng)安裝了$FG_ROOT/Models/my-cessna.wrl。wrl,您可以調(diào)用FlightGear這樣(在類unix系統(tǒng)):fgfs -prop:/sim/model/path=M
3、odels/my-cessna.wrl(注:一般來說任何使用的紋理模型必須出現(xiàn)在相同的目錄中。如果my-cessna。wrl使用紋理cessna01。rgb和cessna02。rgb,您應(yīng)該安裝這些紋理 $FG_ROOT/Models/??梢灾付ㄒ粋€能找到指定紋理的位置的路徑(相對于模型路徑)。當(dāng)您想要設(shè)置一個3d模型永久作為默認(rèn)的飛機(jī)而不是在命令行中指定它,您需要編輯一個飛機(jī)設(shè)置文件。在FG_ROOT美元/飛機(jī)/目錄,設(shè)置一系列文件結(jié)束。xml,c172-set等。xml,dc3-yasim-set。xml和beech99-uiuc-set.xml。當(dāng)你開始FlightGear飛機(jī)選項(xiàng),它讀
4、取這些文件中的一個的屬性從一個;例如:fgfs -aircraft=dc3-yasim從$FG_ROOT/Aircraft/dc3-yasim-set.xml中加載屬性到主FlightGear屬性樹。這些文件在同一個XML屬性列表格式$FG_ROOT/preferences.xml和FlightGear保存文件??赡苡泻芏郮ML文件與不同的啟動條件、聲音、面板、3d模型,等等任何一個飛機(jī)類型,所以你最好復(fù)制現(xiàn)有的一個,重命名,然后改變在路徑元素模型sim卡里面的值:<PropertyList> <sim> <model> <path>Models
5、/my-cessna.wrl</path> <texture-path>./Textures</texture-path> </model> </sim></PropertyList>到目前為止,所有的例子有/ sim /模型/路徑屬性直接指向3 d模型文件(模型/ my-cessna.wrl);然而,如果您希望能夠重新定位或動畫模型,您需要指向一個中間XML文件,然后將重新定位和動畫為XML文件的信息。這是一個簡單的三維模型示例包裝文件,沒有重新定位或動畫信息:<PropertyList> <path&
6、gt;my-cessna.wrl</path> <texture-path>./Textures</texture-path></PropertyList>像the-set.xml文件,這個文件是xml屬性列表的格式,但它的屬性不是添加到主FlightGear屬性樹,他們只用在加載模型。以下部分將解釋如何重新定位和動畫信息添加到文件,現(xiàn)在,唯一的特性是路徑:它提供了實(shí)際的3d文件的相對路徑從XML包裝器文件(不是從FG_ROOT !)。通常,你應(yīng)該把包裝文件在3d文件相同的目錄中,然后有/sim/模型/路徑點(diǎn)的包裝文件,或者在命令行上fgfs -
7、prop:/sim/model/path=Models/my-cessna.xml或在 the -set.xm文件:<PropertyList> <sim> <model> <path>Models/my-cessna.xml</path> </model> </sim></PropertyList>2、 重新定位模型通常,飛機(jī)模型不是專門為FlightGear確定位置或方位正確的;例如,它可能是離地面太遠(yuǎn),機(jī)首可能會指向一邊,甚至直線上升。在XML包裝器文件(不是主FlightGear屬性樹),有
8、六個屬性允許您調(diào)整模型的默認(rèn)位置和姿態(tài):/offsets/x-mThe distance to reposition the model along the x-axis./offsets/y-mThe distance to reposition the model along the y-axis./offsets/z-mThe distance to reposition the model along the z-axis./offsets/heading-degThe angle by which to rotate the model around the z-axis./offs
9、ets/roll-degThe angle by which to rotate the model around the x-axis./offsets/pitch-degThe angle by which to rotate the model around the y-axis.例如,如果您想要使用my-cessna的3d模型my-cessna.wrl。但是發(fā)現(xiàn)機(jī)首指向正確的標(biāo)準(zhǔn)和車輪離地1.5米,你可以調(diào)整它的XML包裝器文件如下:<PropertyList> <path>Models/my-cessna.xml</path> <offset
10、s> <heading-deg>270</heading-deg> <z-m>-1.5</z-m> </offsets></PropertyList>它通常需要一些實(shí)驗(yàn)來獲得正確定位模型。3、 動畫模型現(xiàn)在到了有趣的部分。 FlightGear的,您可以通過有部分轉(zhuǎn)動或旋轉(zhuǎn)的響應(yīng)性變化的動畫模式:例如,推進(jìn)器可以旋轉(zhuǎn)在發(fā)動機(jī)上的電梯能上下移動與控制器。沒有固定的限制在什么部位可以是動態(tài)的:唯一的要求是,該部分被命名為3D模型文件,并且有一個在主樹的特性,你可以用它來獲取定位信息的主樹的屬性。目前,有幾種類型的動畫確認(rèn)
11、:1.none 2.billboard 3.rotate 4.scale 5.blend 6.select 7.spin 8.timed 9.translate 10.texrotate 11.textranslate 12.textmultiple 13.material 14.range 15.alpha-test 16.noshadow 17.dist-scale 18.flash通常,將使用的旋轉(zhuǎn),旋轉(zhuǎn)的組合,并轉(zhuǎn)換成主控制表面,用于大多數(shù)標(biāo)準(zhǔn)構(gòu)型飛機(jī)動畫。自旋圍繞軸線轉(zhuǎn)動所述物體與已知的旋轉(zhuǎn)速度(未擔(dān)心的確切位置),并以一個準(zhǔn)確的位置旋轉(zhuǎn)圍繞軸線轉(zhuǎn)動所述物體。每動畫顯示的動畫元素內(nèi),
12、并包含一個類型屬性和至少一個對象的名稱屬性:<animation> <type>rotate</type> <object-name>Rudder</object-name></animation>它是可以省略類型參數(shù)。在這種情況下,類型是無并且動畫僅在那里下一個名稱組自用物品,可以在該文件中位于更遠(yuǎn)另一個動畫中使用。在動畫對象分組,具有一個類型或沒有,具有重排根目錄在對象名稱指定的對象的影響。規(guī)則是該組被插入在第一個對象和它的原對象之間,然后隨后的對象從它們的起源中移除,并添加到新的組中。沒有動畫,也方便在一種模式重新組
13、織的對象。當(dāng)對象是translucents,他們應(yīng)該被抽回到前面以看到背后穿過對象的世界。但是繪制順序是經(jīng)常出現(xiàn)在模型文件的順序,這是很難控制的建模器內(nèi)。這種方式,可以忽略在建模的順序,并強(qiáng)制重排序在裝載時。順序是當(dāng)然的外觀動畫內(nèi)的對象名條款的順序。請注意,這可以通過另一后續(xù)動畫毀了(最后的優(yōu)先級高于第一)。對象名稱必須與在三維文件中所使用的對象名稱匹配(包括案例)。你可以包含一個以上的對象名稱,將相同的轉(zhuǎn)換應(yīng)用于多個對象,假設(shè)它們在同一行中旋轉(zhuǎn):<animation> <type>rotate</type> <object-name>LeftE
14、levator</object-name> <object-name>RightElevator</object-name></animation>它是可以省略類型參數(shù)。在這種情況下,類型為null和動畫僅在那里下一個名稱組自用物品,可以在該文件中位于更遠(yuǎn)另一個動畫中使用。在動畫對象分組,具有一個類型或沒有,具有重排根目錄在對象名稱指定的對象的影響的規(guī)則是,該組插入第一對象及其原對象之間,然后隨后的對象與它們的原始組移除并添加到新組。由此產(chǎn)生的分支是堅(jiān)實(shí)的,當(dāng)涉及到計(jì)算高度超過地形(HOT)。當(dāng)對象是有模擬的光,或另一非固體的人工制品的光束,它可
15、以是有趣的,忽略它用于碰撞檢測。它是通過<enable-hot type="boolean">false</enable-hot>完成動畫中的條款。默認(rèn)情況下,啟用熱被設(shè)置為true,可以降落在建筑物的屋頂上。每個動畫必須完全從主FlightGear屬性樹一屬性關(guān)聯(lián)(記得在包裝文件的屬性不是樹的主要部分),使用屬性提供屬性名稱:<animation> <type>rotate</type> <object-name>Rudder</object-name> <property>c
16、ontrols/rudder</property></animation>這個例子旋轉(zhuǎn)的方向舵/控制/舵的屬性(或至少,它會在我們指定的中心和軸的旋轉(zhuǎn));然而,/控制/方向舵是標(biāo)準(zhǔn)化從- 1至1,我們可能要旋轉(zhuǎn)舵比,我們需要使用的因素屬性做縮放。例如,如果飛機(jī)上的舵在每個方向上旋轉(zhuǎn)18度,我們會用18個因子來縮放舵的位置,從-18度到18度:<animation> <type>rotate</type> <object-name>Rudder</object-name> <property>cont
17、rols/rudder</property> <factor>18</factor></animation>如果你想扭轉(zhuǎn)方向舵運(yùn)動,你會使用一個18個因素。還有一個偏移度屬性,可以從非中心點(diǎn)旋轉(zhuǎn)是有用的。例如,讓我們說,你想讓舵開始1%到左邊,而不是死的中心,你可以指定這樣的:<animation> <type>rotate</type> <object-name>Rudder</object-name> <property>controls/rudder</prope
18、rty> <offset-deg>-0.01</offset-deg> <factor>18</factor></animation>該偏移量是在該因數(shù)之后應(yīng)用的。最后,有最小和最大特性,可以限制旋轉(zhuǎn)量度,如在此(很復(fù)雜的)例如為塞斯納310起落架:<animation> <type>rotate</type> <object-name>NoseWheel</object-name> <property>gear/gear0/position-norm<
19、;/property> <factor>120</factor> <offset-deg>-1</offset-deg> <min>-90</min> <max>0</max> <center> <x-m>-2.28</x-m> <y-m>0.0</y-m> <z-m>-0.65</z-m> </center> <axis> <x>0</x> <y>1
20、</y> <z>0</z> </axis></animation>在這個例子中,齒輪的位置(從0完全收回到1,完全擴(kuò)展)乘以一個因子為120和一個偏移量為1,然后夾緊到0和90之間。在三維模型中,齒輪是默認(rèn)的,所以我們最終通過齒輪的運(yùn)動范圍內(nèi)的旋轉(zhuǎn):position-norm+ offset -1* factor 120clamped to min/max -90:0comments0.0-1.0-120.0-90.0fully retracted0.25-0.75-90.0-90.0still retracted0.5-0.5-60
21、.0-50.01/3 extended0.75-0.25-30.0-30.02/3 extended1.00.00.00.0fully extended (default position)齒輪在第一個四分之一周期標(biāo)準(zhǔn)位置的地方是不會動的,假設(shè)讓門在單獨(dú)的畫面打開和關(guān)閉,顯然,這將更容易管理插值表,而且未來的模型版本將更可能支持改寫。升級:我們現(xiàn)在支持差值表,每個表加入的依賴點(diǎn)和輸出點(diǎn)值是以一種線性的方式被修改的,在下面的程序中,輸入屬性值25將導(dǎo)致動畫值變?yōu)?5(或許是65度的旋轉(zhuǎn)):<interpolation> <entry> <ind>0</i
22、nd> <dep>0</dep> </entry> <entry> <ind>16.67</ind> <dep>60</dep> </entry> <entry> <ind>25</ind> <dep>65</dep> </entry> <entry> <ind>33.3333</ind> <dep>70</dep> </entry> &l
23、t;entry> <ind>66.6667</ind> <dep>71</dep> </entry> <entry> <ind>100</ind> <dep>75</dep> </entry> </interpolation>對于一個旋轉(zhuǎn)動畫,該屬性提供了一個每分鐘轉(zhuǎn)數(shù)的值,而不是一個絕對以度數(shù)為單位的值,而且是不使用偏移量的,如果不是在轉(zhuǎn)速范圍內(nèi),你仍可以使用因子來縮放屬性值。現(xiàn)在,明確有指定對象的旋轉(zhuǎn)軸是有必要的,這是虛擬的中樞,這通常是最難
24、得一部分,當(dāng)轉(zhuǎn)轉(zhuǎn)軸不是按照x,y,z軸的順序排列時,需要反復(fù)實(shí)驗(yàn)不斷摸索(想想在后掠翼上的副翼)你需要提供兩組信息:一個通過旋轉(zhuǎn)軸的點(diǎn),和軸向哪個方向移動。升級:這兒已經(jīng)有一個可選的方法來指定軸,避免了大量實(shí)驗(yàn)尋錯,看下面在Cessna 172的動畫實(shí)例:對于穿過點(diǎn)的軸,你用 /center/x-m, /center/y-m,和/center/z-m屬性去指定米范圍內(nèi)的位置,使用飛機(jī)的坐標(biāo)系,這是系統(tǒng)重新定位前:如果原來的模型指向側(cè)身,那么你的機(jī)身將沿著y軸而不是x軸運(yùn)行,這里是方向舵的例子:<animation> <type>rotate</
25、type> <object-name>Rudder</object-name> <property>controls/rudder</property> <factor>18</factor> <center> <x-m>5.45</x-m> <y-m>0.0</y-m> <z-m>0.0</z-m> </center></animation>在這個例子中,這個點(diǎn)在y軸z軸上,但是離x軸有5.45米遠(yuǎn)(即朝向飛
26、機(jī)的后面)。最后,除了中心點(diǎn),明確穿過軸的方向是必要的,用 /axis/x, /axis/y, and axis/z.的屬性,這些是無單位的數(shù)值表示變化的每個方向上的速度,例如,一個直線上升和向下旋轉(zhuǎn)軸線可以像這樣指定:<axis> <x>0</x> <y>0</y> <z>1</z></axis>或者是<axis> <x>0</x> <y>0</y> <z>1000000</z><
27、;/axis>只要比率是一樣的,對于一個復(fù)雜的旋轉(zhuǎn)軸,像有顯著二面角的后掠翼上的一個副翼,你必須確定指定在三個軸上的所有動作。<axis> <x>0.15</x> <y>1.00</y> <z>0.01</z></axis>下面是一個完整的例子,顯示了Cessna 172上方向舵的動畫,<animation> <type>rotate</type> <object-name>Rudder</object-name> <prope
28、rty>controls/rudder</property> <factor>18</factor> <center> <x-m>5.45</x-m> <y-m>0.0</y-m> <z-m>0.0</z-m> </center> <axis> <x>0.72</x> <y>0.0</y> <z>1.0</z> </axis></animation>這
29、里有一個旋轉(zhuǎn)的例子,使用Cessna 172的螺旋槳,<animation> <type>spin</type> <object-name>Propeller</object-name> <property>engines/engine0/rpm</property> <center> <x-m>0</x-m> <y-m>0</y-m> <z-m>-.25</z-m> </center> <axis> &
30、lt;x>1.0</x> <y>0.0</y> <z>0.0</z> </axis></animation>有指定軸往往可以發(fā)現(xiàn)更簡單的方法,這種用于在奇數(shù)角度軸的旋轉(zhuǎn)中更有幫助,如二面角掠翼副翼,在這種方法中指定一個<center>標(biāo)簽并不是必要的,因?yàn)樗鼤詣佑?jì)算,<axis>標(biāo)簽要求兩個坐標(biāo)的設(shè)置(x1-m,y1-m,z1-m and x2-m,y2-m,z2-m),一個用于在每個軸的尾端,和一個副翼,例如,你需要從右側(cè)和沿鉸接邊緣副翼的左上角指定坐標(biāo)。如果你的對象與你所希望
31、的方向相反,你就可以簡單的通過兩套坐標(biāo)值的交換實(shí)現(xiàn)矯正(swap x1 and x2, y1 and y2, z1 and z2).以下是747 200的例子<animation> <type>rotate</type> <object-name>AileronLeftOuter</object-name> <property>surface-positions/left-aileron-pos-norm</property> <factor>-30</factor> <axis&
32、gt; <x1-m>18.28</x1-m> <y1-m>-21.55</y1-m> <z1-m>-0.37</z1-m> <x2-m>22.51</x2-m> <y2-m>-28.37</y2-m> <z2-m>0.08</z2-m> </axis></animation>你可以通過像PPe這樣的3d編輯器得到你最初的測量,你也可以用PPE去命名或者重命名部件,這樣你就可以在使它們在flightgear里面以動畫形式展示,最后
33、,你幾乎必須通過實(shí)驗(yàn)尋錯去做一些調(diào)整,到你讀這份文件時很可能已經(jīng)過期了,看看實(shí)際的xml封裝文件(在 $FG_ROOT/Aircraft/aircraft-type/Models/中)在flightgear中是如何做的,未來,我們將會增加其他動畫部分,包括在不同版本中相同部件的選擇(比如高速旋轉(zhuǎn)的半透明槳盤),非轉(zhuǎn)動轉(zhuǎn)換,縮放和條件,只有超過一定速度才能繪制發(fā)動機(jī)排氣,人們通常希望將數(shù)個動畫應(yīng)用在同一個對象上,他們只是簡單的通過制定多個動畫與同一對象名來完成,但是你必須了解執(zhí)行這些規(guī)定動畫的順序。每一個新的動畫優(yōu)先于先前宣布的。正如我們所知,每一個新的動畫被作為指定的對象插入第一對象
34、名這意味著,如果一個轉(zhuǎn)動已聲明,一個新的翻譯將被插入,這將介于旋轉(zhuǎn)和對象之間,使得翻譯作用在物體上,并且旋轉(zhuǎn)作用在被翻譯的對象上。所以,作為一個經(jīng)驗(yàn)法則,請記住,動畫從動畫文件其頂部底部的執(zhí)行。大部分動畫可以通過對性能的布爾表達(dá)式進(jìn)行調(diào)節(jié)。一個條件是由條件的元素引入,就像這個例子:<condition> <greater-than> <property>sim/time/sun-angle-rad</property> <value>1.57</value> </greater-than> </condi
35、tion>有效的條件要素是:property有效屬性的完整路徑:notandorBoolean operatorsless-thanless-than-equalsgreater-thangreater-than-equalsequalsnot-equalsComparison operatorsvalueA literal value可這些元素結(jié)合起來,建立任意一個表達(dá)式。沒有條件的動畫總是被執(zhí)行,有條件的動畫只有在條件值為ture時才被執(zhí)行,F(xiàn)lightGear的場景使用共享的模型,這些模型加載一次并且多次顯示。如果我們在模型上的部件應(yīng)用一次變換,該模型的每次出現(xiàn)都會表現(xiàn)出同樣的轉(zhuǎn)變
36、,創(chuàng)造一個非常不自然的統(tǒng)一,為了解決這樣的問題,一些動畫支持個性的概念,這意味著一組參數(shù)都能夠在規(guī)定的范圍內(nèi)隨機(jī)變化,如果采用個性布爾屬性設(shè)置為true。目前,旋轉(zhuǎn)和定時動畫,支持個性。選擇”動畫典型值當(dāng)相關(guān)條件評估為假時,選擇動畫是沒有從場景中刪除對象的(在對象-name元素指定時)在下面的例子中:<animation> <type>select</type> <object-name>StrobesOn</object-name> <object-name>StrobesOff</object-name>
37、<object-name>Fixed</object-name> <condition> <greater-than> <property>sim/time/sun-angle-rad</property> <value>1.57</value> </greater-than> </condition> </animation>對象StrobesOn,StrobesOff和Fixed知識存在場景中(顯示的),當(dāng)太陽低于地平線,換句話說,這些對象已經(jīng)存在了,因?yàn)樗鼈?/p>
38、是由該模型的設(shè)計(jì)者補(bǔ)充,當(dāng)太陽在水平線上時將被刪除。定時對象動畫這些動畫只選擇那些指定期間對象名指定的其中一個,當(dāng)所顯示的時間結(jié)束時,下一個對象被選擇為匹配的持續(xù)時間。比較簡單的形式是:<animation> <name>BeaconFlasher</name> <type>timed</type> <object-name>BeaconOff</object-name> <object-name>BeaconOn</object-name> <duration-sec>1.
39、0</duration-sec> </animation>在這個例子中,每個對象在相同的時間內(nèi)顯示,以秒為單位指定,第二個例子使用的personality:<animation> <type>timed</type> <object-name>StrobesOn</object-name> <object-name>StrobesOff</object-name> <use-personality type="bool">true</use-pers
40、onality> <branch-duration-sec> <random> <min>0.9</min> <max>1.1</max> </random> </branch-duration-sec> <branch-duration-sec> <random> <min>0.9</min> <max>1.1</max> </random> </branch-duration-sec> <
41、/animation>在這種情況下,為該對象指定一個時間段的每個對象名稱有一個分支持續(xù)時間段元素, branch-duration-sec 的值可能是一個雙字值,這里的文字已經(jīng)被替換為隨機(jī)元素,這表示,由于the use-personalityelement的值被設(shè)置為ture,該持續(xù)時間是在最大和最小之間隨機(jī)選擇的,持續(xù)時間允許在這種模式中每次的出現(xiàn)都不同,打破了傳統(tǒng)。Scale動畫模型,這是使用scale動畫模型的一個例子,在這種情況下,陰影地圖置于飛機(jī)下面,我們可以基于某些屬性值控制大?。碼litutude在地面之上。)在現(xiàn)實(shí)生活中,影子的大小應(yīng)保持
42、幾乎固定的,所以這種技術(shù)作為著陸燈使用更為有效,<animation> <type>scale</type> <object-name>ShadowMap</object-name> <property>position/altitude-agl-ft</property> <x-factor>0.05</x-factor> <x-offset>1.0</x-offset> <y-factor>0.05</y-factor> <y-o
43、ffset>1.0</y-offset> <z-factor>0.0</z-factor> <z-offset>1.0</z-offset> <center> <x-m>0.05</x-m> <y-m>0.05</y-m> <z-m>0.0</z-m> </center> </animation>正和其他動畫一樣,你需要去明確驅(qū)動這個動畫的對象名和屬性,而且,正和其他類型的轉(zhuǎn)換類型動畫,他們被應(yīng)用的順序很重要,對于一個已經(jīng)
44、給定的對象,你可能會想把縮放動畫置于其他任何翻譯或者旋轉(zhuǎn)動畫之后,你有一些單獨(dú)控制X,Y,Z軸的縮放比例,對于每個維度你可以提供因子(X因素,-因子,和z因子)以及偏移(x偏移,-偏移和z的偏移。)還可以指定最低值(x分鐘,-分鐘,z軸分鐘)和最大值(x-最大值,-最大值和z - 最大)用于縮放的結(jié)果。你可以把中心設(shè)置在有標(biāo)記的中心,該中心在任何范圍內(nèi)都不會改變它的位置,如果未設(shè)置此默認(rèn)為(0,0,0)。每個維度的縮放量是由以下公式計(jì)算(在最大和最小之間)scale = property * factor + offset指定的0.0倍和1.0偏移是相當(dāng)于沒有縮放的,為了獲得更大的控制權(quán),它可
45、以定義一個<min>限制的結(jié)果和/或<max>參數(shù)。此效果只會在已經(jīng)有一個透明對象組件時工作,無論是在頂點(diǎn)的顏色還是紋理?!皌exrotate”紋理旋轉(zhuǎn)動畫類型這個動畫將調(diào)整一個對象的紋理映射,使紋理圖像在對象的指定中心旋轉(zhuǎn),請注意,在討論紋理映射時,有效的值是從0到1。紋理坐標(biāo)通常被指定為(u,v)一個正方形物體的左下角一般會被指定為(u= 0,v=0)和右上角(u= 1,v= 1)。該中心將是(u= 0.5,v=0.5)。這些值將是不同的(在0范圍1范圍內(nèi)),如果只有一部分的紋理映射(見下面的羅盤例子)對于指定的<center>通用標(biāo)簽,你只需要使用X和
46、Y坐標(biāo)。<axis>標(biāo)簽通常只需要用于z值。它有可能受到一些不尋常的紋理映射的影響,就像使用其他的軸給人一種靜止平面的錯覺,這是波音747-400 PDF旋轉(zhuǎn)羅盤例子(主飛行顯示器):<animation> <type>texrotate</type> <object-name>rose</object-name> <property>orientation/heading-magnetic-deg</property> <center> <x>0.75</x>
47、<y>0.75</y> <z>0.0</z> </center> <axis> <x>0</x> <y>0</y> <z>-1</z> </axis> </animation>這個例子的中心是(0.75,0.75),因?yàn)橹改厢樦徽紦?jù)了它所包圍的總紋理圖像的右上角,其他三個后部有相同的模型貼圖。如前所述,坐標(biāo)是(0,0)從左下到右上的(1,1),右上象限的中心是(0.75,0.75)。"textranslate"
48、; 紋理轉(zhuǎn)化動畫類型這個動畫將調(diào)整紋理映射對象的紋理以至于紋理印象基于對象似乎緩緩滑落。需要一個<軸>標(biāo)記指定紋理的軸一起移動的方向運(yùn)動。下面的示例顯示正確的大多數(shù)數(shù)字初始飛行飛行顯示器上的高度指示器: <animation> <type>textranslate</type> <object-name>alt1</object-name> <property>position/altitude-ft</property> <factor>0.01</factor> <
49、axis> <x>0</x> <y>1</y> <z>0</z> </axis> </animation>也有一些特殊的屬性使用紋理動畫。這些都是:1. 階梯2. 卷軸3. 斜紋<步驟>標(biāo)記是有用的,如果你想要動畫發(fā)生的步驟而不是平穩(wěn)的。它會導(dǎo)致分?jǐn)?shù)的值(之間)的步驟大小忽略。它可以用于諸如改變數(shù)字nurmeric顯示或一個滴答作響的時鐘秒針。<滾動>標(biāo)記與<一步>標(biāo)記。滾動的值指定輸入屬性值的距離時應(yīng)該從一步滾動到下一個位置開始。這種類型的滾動efi座艙顯
50、示器上很常見(e.g. > 99):<animation> <type>textranslate</type> <object-name>asi3</object-name> <property>velocities/airspeed-kt</property> <factor>0.001</factor> <step>100</step> <scroll>1</scroll> <axis> <x>0</
51、x> <y>1</y> <z>0</z> </axis> </animation><偏差>標(biāo)記添加,因?yàn)檎?biāo)簽調(diào)整屬性,應(yīng)用<抵消>和<因素> <一步>標(biāo)記。<偏見>標(biāo)記允許您申請前一個偏移量<一步>標(biāo)記,例如,修復(fù)一個無線電頻率顯示心臟<animation> <type>textranslate</type> <object-name>comm-digit1</object-name>
52、; <property>instrumentation/comm/frequencies/standby-mhz</property> <factor>10.0</factor> <step>0.01</step> <bias>0.005</bias> <axis> <x>0</x> <y>1</y> <z>0</z> </axis> </animation>"textmultipl
53、e" type, 結(jié)合紋理動畫類型textmultiple動畫類型并不是一個真正的動畫類型,而是這是一個相結(jié)合的方法對同一對象的多個紋理轉(zhuǎn)換操作。與對象頂點(diǎn)操作、紋理操作不能堆疊,這意味著如果您配置的兩個或兩個以上的紋理動畫標(biāo)簽相同的對象,只有將使用列表中的第一個。通過使用清單操作在Simgear texmultiple它們組合在一起,然后作為一個單一的操作處理。如果你需要結(jié)合平移和旋轉(zhuǎn)這是目前唯一的方法。注意變換操作是應(yīng)用于相同的順序,他們在配置文件中列出。下面的例子的地平線紋理747 - 400主飛行顯示器解釋清楚的格式:<animation> <type>
54、;texmultiple</type> <object-name>horizon</object-name> <transform> <property>orientation/pitch-deg</property> <subtype>textranslate</subtype> <factor>0.0045</factor> <axis> <x>0</x> <y>1</y> <z>0</z>
55、; </axis> </transform> <transform> <property>orientation/roll-deg</property> <subtype>texrotate</subtype> <center> <x>0.50</x> <y>0.50</y> </center> <axis> <x>0</x> <y>0</y> <z>-1</z&
56、gt; </axis> </transform> </animation>"范圍" 動畫類型范圍類型是用于選擇模型的一部分使用其距離觀眾為準(zhǔn)繩。查看,模型必須最小距離和最大的一個??梢灾付ㄗ钚【嚯x與< min-m >元素或獨(dú)家< min屬性>元素。第一個允許指定一個固定的距離米,后者允許查找一個屬性的值。都可以乘以一個固定金額,在< min-factor >元素中指定。相同的一個<animation> <type>range</type> <object-nam
57、e>Detailed</object-name> <min-m>0</min-m> <max-property>/sim/rendering/static-lod/detailed</max-property></animation> "alpha-test" 動畫類型這種“動畫”是一種設(shè)置一個測試模型的分支。避免深度緩沖的效果是寫作的像素沒有見過,因?yàn)樗鼈兪峭该鞯?。這是尤其有用的建模時金屬結(jié)構(gòu)或一棵樹廣告牌。透明度的閾值與< alpha-factor >元素設(shè)置是這樣的:<an
58、imation> <type>alpha-test</type> <object-name>Detailed</object-name> <alpha-factor>0.01</alpha-factor></animation> "noshadow" 動畫類型這種“動畫”阻止了投射陰影代碼包括這個對象,這可能是有用的,當(dāng)它不蒙上了陰影(排氣火焰)或當(dāng)它看起來丑陋。<animation> <type>noshadow</type> <object
59、-name>Wires.1</object-name> <object-name>Wires.2</object-name></animation> "dist-scale" 動畫類型這個動畫可以擴(kuò)展一個對象基于中心的觀眾的距離。它旨在補(bǔ)償霧的影響發(fā)射(光)來源太濃(燈是幾乎不可見的距離)參數(shù),默認(rèn)值是:<animation> <type>dist-scale</type> <object-name>RedLight.11</object-name> <f
60、actor>1.0</factor> <offset>0.0</offset> <min>0.0</min> <max>1.0</max> <center> <x-m>0.0</x-m> <y-m>0.0</y-m> <z-m>0.0</z-m> </center></animation> 或者,插值表 :<animation> <type>dist-scale</ty
61、pe> <object-name>RedLight.11</object-name> <interpolation> <entry><ind>0</ind><dep>0.1</dep></entry> <entry><ind>500</ind><dep>0.2</dep></entry> <entry><ind>16000</ind><dep>3</dep&
62、gt;</entry> </interpolation> <min>0.0</min> <max>3.0</max> <center> <x-m>0.0</x-m> <y-m>0.0</y-m> <z-m>0.0</z-m> </center></animation> "flash" 動畫類型這個動畫的目的是擴(kuò)展一個對象基于任意軸之間的夾角和觀眾之間的軸和中心的對象。尋求效應(yīng)是一座燈塔的flash
63、或燈塔,或任何強(qiáng)烈的狹窄的光束,因此得名。參數(shù),默認(rèn)值是:<animation> <type>flash</type> <object-name>WhiteFlash.2</object-name> <offset>0.0</offset> <factor>1.0</factor> <power>1.0</power> <two-sides type="boolean">false</two-sides> <min
64、>0.0</min> <max>1.0</max> <center> <x-m>0.0</x-m> <y-m>0.0</y-m> <z-m>0.0</z-m> </center> <axis> <x>0.0</x> <y>0.0</y> <z>1.0</z> </axis></animation> 規(guī)模的公式是: S =因素*pow(因?yàn)榻?、電?+偏
65、移量因?yàn)榻堑挠嘞医侵g的軸和中心和觀眾之間的界線。S是夾之間的最小和最大的價值。不允許插值表在這個動畫。"原料" 動畫類型這種“動畫”可以設(shè)置任何材料屬性模型的分支,包括紋理文件路徑。以下簡約示例動畫可以改變“面板”對象的發(fā)射顏色從(0,0,0)(1。2 0)通過設(shè)置因素屬性值在0.0和1.0之間。<animation> <type>material</type> <object-name>panel</object-name> <emission> <red>1.0</red>
66、 <green>0.2</green> <blue>0.0</blue> <factor-prop>/controls/lighting/instruments-norm</factor-prop> </emission></animation> 更改默認(rèn)這個動畫類型只有有效的<對象名稱>標(biāo)記中列出的對象,即您可以使用不止一個。然而,下一個示例設(shè)置可選的<世界>屬性,這樣的變化影響的所有對象 然而,下一個示例設(shè)置可選的<世界>屬性,所以變化影響所有對象共享相同的材
67、料。這是首選的方法,應(yīng)該使用的。 然而,下一個示例設(shè)置可選的<世界>屬性,所以變化影響所有對象共享相同的材料。這是首選的方法,應(yīng)該使用的。 它不僅更快,也沒有其他動畫通過強(qiáng)制對象分解成相同的分支。注意,所有材料屬性可以設(shè)置為固定值,例如<紅>,或者通過添加“道具”,另一個屬性節(jié)點(diǎn)的內(nèi)容:<紅色支柱>. 因?yàn)椤拔镔|(zhì)”動畫路徑可以包含很多這樣的屬性,這是一個討厭寫作,難以閱讀,拼寫錯誤的潛在來源,有一個< property-base >組件。 其字符串值返回所有材料屬性名(而不是房地產(chǎn)路徑<條件>聲明!)。下面的例子展示了所有可用的元素:
68、<animation> <type>material</type> <object-name>fuselage</object-name> <condition> <property>sim/model/foo/animate-fuselage-material</property> </condition> <global type="bool">true</global> <property-base>/sim/model/foo/material/fuselage</property-base> <diffuse> <red-prop>diffuse/red</red-prop> <green-prop>diffuse/green</green-prop> <blue-prop>diffuse/blue</blue-prop> <
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:教育發(fā)展質(zhì)量動態(tài)監(jiān)測和評估研究
- 2025版土地儲備開發(fā)投資合作協(xié)議3篇
- 二零二五版能源采購合同風(fēng)險控制與能源價格波動應(yīng)對3篇
- 2025年度個人藝術(shù)品收藏鑒定合同3篇
- 2025年度個人股東股權(quán)轉(zhuǎn)讓協(xié)議范本詳盡規(guī)定股權(quán)轉(zhuǎn)讓費(fèi)用3篇
- 2025版委托人事代理及員工職業(yè)發(fā)展協(xié)議3篇
- 基于物聯(lián)網(wǎng)的智能穿戴設(shè)備2025年度研發(fā)合同
- 2025年個人魚塘智能養(yǎng)殖系統(tǒng)研發(fā)與應(yīng)用合同范本4篇
- 2025年度企業(yè)股權(quán)轉(zhuǎn)讓與知識產(chǎn)權(quán)許可合同
- 2025年度新型環(huán)保木質(zhì)防火門批發(fā)采購合同
- 2025年上半年江蘇連云港灌云縣招聘“鄉(xiāng)村振興專干”16人易考易錯模擬試題(共500題)試卷后附參考答案
- DB3301T 0382-2022 公共資源交易開評標(biāo)數(shù)字見證服務(wù)規(guī)范
- 人教版2024-2025學(xué)年八年級上學(xué)期數(shù)學(xué)期末壓軸題練習(xí)
- 江蘇省無錫市2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 俄語版:中國文化概論之中國的傳統(tǒng)節(jié)日
- 2022年湖南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 婦科一病一品護(hù)理匯報
- 哪吒之魔童降世
- 2022年上海市各區(qū)中考一模語文試卷及答案
- 2024年全國統(tǒng)一高考數(shù)學(xué)試卷(新高考Ⅱ)含答案
- 地震工程學(xué)概論課件
評論
0/150
提交評論