OGRE手册--脚本texture_unit
?????????????????????????????????????? ------------摘自<OGRE中文幫助手冊>
紋理單元('texture_unit')
紋理texture
設置這一層要使用的靜態紋理圖像的名字。
格式: texture <texturename> [<type>] [unlimited | numMipMaps] [alpha] [<PixelFormat>]
示例: texture funkywall.jpg
這個設置與anim_texture屬性是互斥的。注意紋理文件不能包含空格。
type 默認值是'2d'<1d,2d,3d,cubic>
'numMipMaps'允許你指定這個紋理的mipmap數量
活動紋理anim_texture
指的是有多幅畫面
格式1 (短格式): anim_texture <base_name> <num_frames> <duration>
示例: anim_texture flame.jpg 5 2.5
上面格式1的例子建立了一個有5幅畫面組成的活動紋理層,分別被命名為flame_0.jpg,flame_1.jpg,
flame_2.jpg等等,長度2.5秒(2fps)。如果延時(duration)設置為0,那么不發生自動轉換,需要在代碼
中手動改變。
格式2 (長格式): anim_texture <frame1> <frame2> ... <duration>
示例: anim_texture flamestart.jpg flamemore.png flameagain.jpg moreflame.jpg lastflame.tga 2.5
上面格式2的例子也建立了與格式1的例子一樣延時的動畫,只不過這次是由5個單獨命名的圖像文件組成的。
第一種格式更簡單,之所以給出第二種格式是為了解決圖像不能統一命名的情況。
立方體紋理cubic_texture
格式1 (短格式): cubic_texture <base_name> <combinedUVW|separateUV>
格式1這種格式的基礎名如'skybox.jpg',系統會希望你提供的各面圖像名為skybox_fr.jpg,skybox_bk.jpg
,skybox_up.jpg,skybox_dn.jpg,skybox_lf.jpg,and skybox_rt.jpg。
格式2 (長格式): cubic_texture <front> <back> <left> <right> <up> <down> separateUV
格式2這種格式,每一面都顯式地指定,以防如果沒辦法按一致的標準命名。你可以使用帶separateUV參數的
格式2,因為combinedUVW需要一個單獨的紋理名賦值給復合3D紋理(見下面)。
兩種格式中,最后一個參數的意思如下:
combinedUVW
6個紋理被合在一個立方體紋理映射中,使用帶U,V,W元素的3D紋理坐標。對于反射映射是必要的,因為你永
遠不知道你將要需要的是哪一個面。需要注意的是,不是所有的顯卡都支持立方體環境映射。
separateUV
6個紋理被分開來保存,但是被一個紋理層引用。在任一時刻只有一個紋理處于活動狀態(實際上,它們被作
為6幅畫面保存起來),所以使用2D UV坐標。這種類型適用于天空盒(skyboxes)因為每次只有一面被渲染,
而且在更老的顯卡上也有硬件支持。
紋理坐標集tex_coord_set
設置這個紋理層要使用的紋理坐標集。一個網格可以定義多個紋理坐標集,此屬性設置這個材質使用哪一個坐
標集。
格式: tex_coord_set <set_num>
示例: tex_coord_set 2
默認: tex_coord_set 0
紋理尋址模式tex_address_mode
定義在這個紋理層的紋理坐標超過1.0時發生的事情。你可以選擇簡單格式,一次對全部3個紋理坐標指定尋址
模式,或者擴展的格式,使用三分之二的參數每個紋理坐標指定不同的模式。
簡單格式: tex_address_mode <uvw_mode>
擴展格式: tex_address_mode <u_mode> <v_mode> [<w_mode>]
wrap
任何超過1.0的值都被置為0.0。紋理被重復一次。
clamp
超過1.0的值被固定為1.0。超過1.0的其它地方的紋理,沿用最后像素的紋理。用于當疊加過濾時,需要從0.0
到1.0精確覆蓋且沒有模糊邊界的紋理。
mirror
每到邊界處紋理翻轉,意思就是每個1.0 u或者v處紋理被鏡像翻轉。
border
超出[0.0, 1.0]范圍的值都被置為邊界色,也可以設置tex_border_colour屬性。
默認: tex_address_mode wrap
過濾filtering
設置當放大或縮小紋理時,使用的紋理過濾形式。這個屬性有兩種格式,簡單格式就是指定預先定義好的過濾
選項集的名字;復雜格式,就要你自己分別設定縮小,放大,mip過濾。
簡單格式
格式: filtering <none|bilinear|trilinear|anisotropic>
默認: filtering bilinear
這種格式,你只需要提供如下的一個參數:
none
不使用過濾或mipmapping縮放。這相當于復雜格式的'filtering point point none'。
bilinear
當放大或縮小一個紋理時,使用2x2 box過濾,從列表中挑出一個mipmap但是在mipmaps的各級之間不使用過濾
。這相當于復雜格式的'filtering linear linear point'。
trilinear
當放大或縮小一個紋理時,使用2x2 box過濾,最近的2個mipmaps被一起過濾。這相當于復雜格式
的'filtering linear linear linear'。
anisotropic
除了過濾算法考慮了與鏡頭相關的三角形坡面而不是一味地簡單做一個2x2像素過濾之外,這個屬性
與'trilinear'相同。這使得三角形的銳角看起來較少失真。相當于復雜格式的'filtering anisotropic
anisotropic linear'。注意,要想這個屬性有所不同,你還必須設置max_anisotropy屬性。
復雜格式
Format: filtering <minification> <magnification> <mip>
Default: filtering linear linear point
這個格式給你對于縮小,放大,和mip過濾完全的控制權。參數如下:
none
無——唯一的一個'mip'過濾可用的參數,此參數完全關閉了mipmapping。對于縮小和放大的最低設置
是'point'。
point
挑選縮小和放大模式最近的像素。在mip模式中,此選項挑選出最符合mipmap要求的。
linear
圍繞最近像素點過濾出一個2x2大小的像素塊。在'mip'過濾中,這可以在mipmap各層級之間銜接。
anisotropic
僅針對縮小和放大模式可用,對于三角形的攝像機空間斜坡過濾補償。注意,要想這個屬性有所不同,還必須
設置max_anisotropy屬性。
colour_op
混合這個紋理層與它下面的一層(或者如果它是第一層的話,如何將它與光照效果混合)。
格式: colour_op <replace|add|modulate|alpha_blend>
默認: colour_op modulate
colour_op_ex
colour_op屬性的擴展版,可以應用更加復雜的混合操作,但受限于硬件支持的紋理單元數
格式: colour_op_ex <operation> <source1> <source2> [<manual_factor>] [<manual_colour1>]
[<manual_colour2>]
示例: colour_op_ex add_signed src_manual src_current 0.5
默認: none (colour_op modulate)
colour_op_multipass_fallback
在如果使用了colour_op_ex屬性且沒有足夠的多紋理硬件支持時,設置這個紋理層的多路后撤操作。
格式: colour_op_multipass_fallback <src_factor> <dest_factor>
示例: colour_op_mulitpass_fallback one one_minus_dest_alpha
scroll
給紋理設置一個固定的偏移量。
格式: scroll <x> <y>
scroll_anim
給紋理層設置一個動態的滾動
格式: scroll_anim <xspeed> <yspeed>
rotate
將一個紋理旋轉一個固定的角度
格式: rotate <angle>
rotate_anim
為這一層創建動態旋轉效果(固定速度)
格式: rotate_anim <revs_per_second>
scale
格式: scale <x_scale> <y_scale>
wave_xform
建立一個基于波功能的動態改變形式。用于更高級的紋理層改變效果。你可以在一個紋理層中隨意添加多個此
屬性的實例
格式: wave_xform <xform_type> <wave_type> <base> <frequency> <phase> <amplitude>
示例: wave_xform scale_x sine 1.0 0.2 0.0 5.0
transform
這個屬性允許你為紋理單元指定一個4x4變換矩陣,因而取代上述的滾動、旋轉、比例屬性。
格式: transform m00 m01 m02 m03 m10 m11 m12 m13 m20 m21 m22 m23 m30 m31 m32 m33
上面4x4矩陣中的數值序號為m<row><col>,前面一個為行號,后面一個為列號。
轉載于:https://www.cnblogs.com/Zephyroal/archive/2011/06/01/2067363.html
總結
以上是生活随笔為你收集整理的OGRE手册--脚本texture_unit的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET字符串操作类StringHelp
- 下一篇: Hello Android – 迈出an