出自Ogre3D開放資源地帶3.1.2 渲染通路(Pass)
一個渲染通路就是幾何問題裡的一次渲染;一個帶有一整套渲染屬性的渲染API的一次調用。一個技術可以包含有1到16個渲染通路,當然,渲染通路用得越多,技術在渲染的時候開銷越大。
為了清楚識別使用的到底是哪個渲染通路,渲染通路常常被起個名字,當然,也可以不起,名字並不是必需的。指令碼中沒有名字的渲染通路將會以渲染通路索引號為名。例如:在一個技術裡,第一個渲染通路索引號是index 0,所以,如果指令碼中沒有對它命名,那麼它的名字就是“0”。一個技術中的渲染通路的名字必須是唯一的,否則,最後一個渲染通路的結果就會是所有相同名字的渲染通路的效果的融合。如果發生這種事,一個警告訊息就會發到Ogre.log中。而且,命名渲染通路還有助於複製材質和修改已經存在的渲染通路:(詳見3.1.11
材質拷貝部分)
渲染通路有一套全域屬性(如下所述),0或多個紋理單元入口,:(詳見3.1.3 紋理單元部分),以及可選的對於頂點程式或片斷程式的引用(詳見3.1.9
在渲染通路中使用頂點程式和片斷程式部分)。
下面介紹在.material指令碼中“渲染通路”部分能夠使用的一些屬性:
-
- ambient
- diffuse
- specular
- emissive
- scene_blend
- depth_check
- depth_write
- depth_func
- depth_bias
- alpha_rejection
- cull_hardware
- cull_software
- lighting
- shading
- polygon_mode
- fog_override
- colour_write
- max_lights
- start_light
- iteration
- point_size
- point_sprites
- point_size_attenuation
- point_size_min
- point_size_max
屬性詳解
ambient
設定此渲染通路中周圍環境的反射係數。當asm,CG,HLSL(High Level Shader Language進階渲染語言)使用時,該屬性無效。與GLSL()一起使用時,渲染器可以讀OpenGL材質狀態。
格式: ambient (<red> <green> <blue> [<alpha>]| vertexcolour)數值的取值範圍在0.0到1.0之間。樣本: ambient 0.0 0.8 0.0
渲染通路的基本顏色取決於各頂點紅色,綠色和藍色光的反射量。此屬性決定了反射多少環境光線(無目標的全域光)。也可以如在網格中定義的一樣,通過使用關鍵字vertexcolour而不是使用顏色值,使環境反射係數跟蹤頂點顏色。預設值是全白的,意思就是物體整個完全被照亮。如果你想要看見散射和鏡面反射的效果,就要減少這個屬性的相關數值,或者改變顏色的混合,使物體有一個不是白色的基礎色。如果使用了'lighting off'屬性將動態光照關閉了或者任何紋理層有'colour_op
replace'屬性,那麼“ambient”這個屬性無效。
預設: ambient 1.0 1.0 1.0 1.0
diffuse
設定此渲染通路中漫反射係數。當asm,CG,HLSL(High Level Shader Language,進階渲染語言)使用時,該屬性無效。與GLSL(OpenGL's Shader Language,OpenGL的渲染語言)一起使用時,渲染器可以讀OpenGL材質狀態。
格式: diffuse (<red> <green> <blue> [<alpha>]| vertexcolour)數值的取值範圍在0.0到1.0之間。樣本: diffuse 1.0 0.5 0.5
渲染通路的基本顏色取決於各頂點紅色,綠色和藍色光的反射量。此屬性決定了反射多少四散光(來自情境中光照類執行個體的光)。也可以像在網格裡一樣定義,用vertexcolour關鍵字而不是用顏色值,令四散反射係數追蹤頂點顏色。預設值是全白,意思就是物體反射所能接收到的所有白光。如果使用了'lighting off'屬性將動態光照被關閉了或者任何紋理層有'colour_op replace'屬性,那麼“ambient”這個屬性無效。
Default: diffuse 1.0 1.0 1.0 1.0
specular
設定此渲染通路中鏡面反射顏色的反射係數。當asm,CG,HLSL(High Level Shader Language,進階渲染語言)使用時,該屬性無效。與GLSL(OpenGL's Shader Language,OpenGL的渲染語言)一起使用時,渲染器可以讀OpenGL材質狀態。
格式: specular (<red> <green> <blue> [<alpha>]| vertexcolour) <shininess>數值的取值範圍在0.0到1.0之間。閃耀值(shininess)可以是任意比0大的值。樣本: specular 1.0 1.0 1.0 12.5
渲染通路的基本顏色取決於各頂點紅色,綠色和藍色光的反射量。此屬性決定了反射多少鏡面光(來自情境中光照類執行個體的高光)。也可以像在網格裡一樣定義,用vertexcolour關鍵字而不是用顏色值,令鏡面反射係數追蹤頂點顏色。預設值沒有鏡面反光。鏡面反射的這種高光取決於顏色參數,閃耀值的設定大小。閃耀值設定得越高,高光就越耀眼。閃耀值在0.0到1.0之間時,使用要小心,因為這會引起高光顏色會被應用到有使用這種高光屬性材質的整個平面。這樣的話,當對該平面的視角發生改變的時候,會發生特別噁心的閃爍。閃耀值在1到128之間時,在DirectX和OpenGL渲染器上都表現良好。如果使用了'lighting
off'屬性將動態光照被關閉了或者任何紋理層有'colour_op replace'屬性,那麼“ambient”這個屬性無效。
預設: specular 0.0 0.0 0.0 0.0 0.0
emissive
設定一個物體自發光的量。當asm,CG,HLSL(High Level Shader Language,進階渲染語言)使用時,該屬性無效。與GLSL(OpenGL's Shader Language,OpenGL的渲染語言)一起使用時,渲染器可以讀OpenGL材質狀態。
格式: emissive (<red> <green> <blue> [<alpha>]| vertexcolour)數值的取值範圍在0.0到1.0之間。樣本: emissive 1.0 0.0 0.0
如果一個物體是自發光的,那麼它就不需要外界的光去照亮它,無論是環境光線還是其它的光,就好像有自己的環境光線一樣。然而,其實這個屬性並不像名字所暗示的那樣,這個物體對情境中的其他物體來說並不是一個光源(如果你想讓它成為一個光源,你需要建立一個光源然後將光源放在這個物體的中心上)。也可以像在網格裡一樣定義,用vertexcolour關鍵字而不是用顏色值,令這樣放射出來的顏色追蹤頂點顏色。如果使用了'lighting off'屬性將動態光照被關閉了或者任何紋理層有'colour_op
replace'屬性,那麼“ambient”這個屬性無效。
預設: emissive 0.0 0.0 0.0 0.0
scene_blend
設定此渲染通路與情境中現有的內容混合的方式。紋理單元入口所見的那個紋理混合操作被看作是紋理層之間的混合,而這個混合是將此渲染通路的輸出結果與當前渲染目標的內容相結合。所以,這種混合就允許物體透明和其他特殊效果。有兩種形式可供選擇使用:一是使用預定義混合形式;二是使用自訂的辦法,源因數和目標因數都有你自己DIY。
格式1: scene_blend <add|modulate|alpha_blend|colour_blend>樣本: scene_blend add
這是一個比較簡單的形式,常用的混合形式由一個參數枚舉出來,可用的混合形式參數如下:
-
-
渲染輸出的顏色和亮度一起疊加到情境中,用在爆炸、閃光、閃電、鬼魂等地方效果很好。相當於“scene_blend one one”
-
另一種將渲染輸出加到情境內容中,一般用於給情境著色和加深情境顏色。對於濃煙瀰漫的玻璃,半透明的物體等,有很好的使用效果。相當於“scene_blend dest_colour zero”。
-
基於輸入檔案的亮度給情境著色,但是並不加深顏色。相當於“scene_blend src_colour one_minus_src_colour”。
-
渲染輸出的alpha值被用作遮罩。相當於“scene_blend src_alpha one_minus_src_alpha”
格式2: scene_blend <src_factor> <dest_factor>樣本: scene_blend one one_minus_dest_alpha
這種格式允許你通過設定源和目標因數,從而完全控制混合操作。最終被寫入渲染目標的顏色結果是(texture * sourceFactor) + (scene_pixel * destFactor)。兩個參數的可選值如下:
-
one
-
常數值1.0
-
zero
-
常數值0.0
-
dest_colour
-
已存在的像素顏色
-
src_colour
-
紋理像素顏色
-
one_minus_dest_colour
-
1 -(dest_colour)
-
one_minus_src_colour
-
1 -(src_colour)
-
dest_alpha
-
已存在的像素alpha值
-
src_alpha
-
紋理像素alpha值
-
one_minus_dest_alpha
-
1 -(dest_alpha)
-
one_minus_src_alpha
-
1 -(src_alpha)
預設: scene_blend one zero (這句意為不透明的)
depth_check
設定此渲染通路的深度緩衝檢測的狀態是開啟狀態還是關閉狀態。
格式: depth_check <on|off>
如果深度緩衝檢測處於開啟狀態,則無論何時一個像素要想寫入畫面緩衝,深度緩衝檢測就檢查這個像素是否比在那一點的其它像素都要靠前。如果不是,那麼這個像素就不寫入。如果深度緩衝檢測關閉了,則無論之前渲染的結果,一律寫入這個像素。更進階的配置還可參看depth_func
預設: depth_check on
depth_write
設定此渲染通路的深度緩衝寫入的狀態是開啟狀態還是關閉狀態。
格式: depth_write <on|off>
如果深度緩衝寫入處於開啟狀態,無論何時一個像素想要寫入畫面緩衝,深度緩衝都會更新那個像素的深度值,因此,如果將來的像素在這個像素的後面,就會影響將來的渲染操作。如果這一屬性被關閉了,那麼像素就不會更新深度緩衝。一般來說,這一屬性是開啟的,但是,當你渲染靜態背景或者位於情境後部的一系列透明物體以便它們能夠彼此正確地重疊時,也可以關閉。
預設: depth_write on
depth_func
當深度檢測開啟時,設定用於比較深度值的函數。
格式: depth_func <func>
如果深度檢測處於開啟狀態(參看depth_check),那麼將要寫入的像素的深度值與緩衝區中現有內容的深度值會發生比較。一般來說,這種比較是小於等於,例如:將要寫入的像素比現有內容距離我們更近(或相等)。可能的函數如下:
-
always_fail
-
-
永遠不向渲染目標寫入像素
-
always_pass
-
-
總是將像素寫入渲染目標
-
less
-
-
如果將要寫入的像素的深度小於現在緩衝區內容的深度,則寫入
-
less_equal
-
-
如果將要寫入的像素的深度小於等於現在緩衝區內容的深度,則寫入
-
equal
-
-
如果將要寫入的像素的深度等於現在緩衝區內容的深度,則寫入
-
not_equal
-
-
如果將要寫入的像素的深度不等於現在緩衝區內容的深度,則寫入
-
greater_equal
-
-
如果將要寫入的像素的深度大於等於現在緩衝區內容的深度,則寫入
-
greater
-
-
如果將要寫入的像素的深度大於現在緩衝區內容的深度,則寫入
預設: depth_func less_equal
depth_bias
設定此渲染通路的深度值的偏向。可用於使共面的多邊形中的一個位於其它之上。例如:印製花紋圖案。
格式: depth_bias <constant_bias> [<slopescale_bias>]
深度偏向值最終由偏向常數(constant_bias)*最小可觀察的深度(minObservableDepth)+最大坡度(maxSlope)*坡度偏向(slopescale_bias)共同決定。坡度偏向與多邊形到鏡頭的角度有關,形成相應的偏向值,但是在一些時間比較早的硬體上,這被忽略了。偏向常數是形成最小深度值的一個因素,所以1的價值就在於一點一點地緩慢地推進深度。
alpha_rejection
設定此項,可以使用alpha作為一個閥值,令渲染通路拒絕來自管線的像素。
格式: alpha_rejection <function> <value>樣本: alpha_rejection greater_equal 128
如上例所示,拒絕所有來自管線的alpha值大於等於128的像素。 function參數可以選擇在depth_function屬性的參數列表中所列的參數。value參數理論上可以是0到255之間的任意數,但是考慮到硬體相容性,最好限制在0到128之間。
預設: alpha_rejection always_pass
cull_hardware
設定此渲染通路的硬體裁剪模式。
格式: cull_hardware <clockwise|anticlockwise|none>
硬體渲染引擎裁剪三角形的典型方法是基於三角形頂點的環繞順序。頂點環繞順序又與渲染操作中頂點傳送和編號的方向有關,從鏡頭中看到的有可能是順時針的也可能是逆時針的。如果選擇了'cull_hardware clockwise'設定,則所有從鏡頭看順時針順序的三角形被硬體剪裁掉。顯然,'anticlockwise'設定裁剪掉逆時針順序的三角形。'none'設定關閉硬體裁剪,即所有三角形都渲染(用於渲染雙側道路)。
預設: cull_hardware clockwise
預設值與OpenGL的預設值相同,與Direct3D的預設值相反(因為OGRE與OpenGL一樣使用右手座標系)。
cull_software
設定此渲染通路的軟體裁剪模式。
格式: cull_software <back|front|none>
在某些情形下,引擎也會在將幾何體送往硬體渲染前進行軟體裁剪。此設定僅在情境管理器使用它時起效(因為最好用在大量平面的世界幾何體,而不是移動的幾何體,因為用於移動的物體上代價會很大),但是如果在送入硬體之前可以有效裁剪的話還是可以使用的。在這種情況下,裁剪就要基於面向鏡頭的是三角形的背面還是正面——這個定義是基於面法向的(即:垂直於多邊形平面且標示出正面方向的向量)。因為OGRE期望平面的逆時針方向為正向,所以軟體裁剪'cull_software back'相當於硬體裁剪'cull_hardware clockwise'設定,也是為什麼這兩個作為預設設定的原因。雖然反映裁剪方式的命名是不同的,但是由於多數時候面法向都是預先計算好的且不一定是OGRE期望的方式,因此如果你有使用你自訂的面法向的情境管理器,也可以設定'cull_hardware
none'然後完全基於你的面法向進行軟體裁剪。
預設: cull_software back
lighting
設定動態光照是處於開啟狀態還是關閉狀態。如果光照被關閉,那麼所有使用此渲染通路的物體將被完全照亮。如果使用了頂點程式,則此屬性無效。
格式: lighting <on|off>
關閉動態光照會使得任何環境光線、漫反射光、鏡面反射光、放射光和陰影屬性都成為了多餘的。當開啟光照時,物體按照頂點的法向被照亮。
預設: lighting on
shading
設定此渲染通路中為表現動態光照而使用的各種陰影形式。
格式: shading <flat|gouraud|phong>
當動態光照開啟時,效果就在每個頂點處產生顏色值。這些值是否全平面插入(如何插入)就依賴於這個屬性設定。
-
flat
-
-
無插值參與。每個平面的陰影由平面上第一個頂點的顏色決定。
-
gouraud
-
-
平面上每個頂點的顏色採用線性插入。
-
phong
-
-
在全平面上插入頂點法線向量,被用於決定每個像素的顏色。能夠得到更加自然的光照效果,但是代價也相應更高,在進階應用程式中表現更好。並不是所有硬體都支援此屬性。
預設: shading gouraud
polygon_mode
設定多邊形應該如何被柵格化。例如:它們應該是被填充後畫出來,還是作為點(只有頂點)、線(只有外邊框)畫出來。
格式: polygon_mode <solid|wireframe|points>
-
solid
-
-
一般情況——填充多邊形
-
wireframe
-
-
多邊形只畫外邊框
-
points
-
-
只畫每個多邊形的點
預設: polygon_mode solid
fog_override
這個屬性告訴渲染通路是否撤銷情境的霧設定,而強制執行此渲染通路它自己的設定。當情境中其他的物體被霧遮擋,而你不想讓霧影響某些物體時非常有用。當然反之亦然。注意這隻影響固定功能霧——原來的情境霧參數仍然被送入渲染器,使用fog_params參數綁定(這就允許你關閉固定功能霧,轉而在渲染器中計算;如果你想關閉陰影霧,你可以通過陰影參數關閉它。)
格式: fog_override <override?> [<type> <colour> <density> <start> <end>]預設: fog_override false
如果你指定第一個參數為真,並給出了其餘參數,就表明你要告訴渲染通路如果在使用這些霧設定和使用情境設定之間選擇的話,優先選擇使用這些霧設定。如果你指定第一個參數為真,但沒給出其餘參數,就表明你要告訴渲染通路不使用任何霧設定,無論情境如何設定。以下是參數的解釋:
-
type
-
none = 沒有霧,相當於使用'fog_override true'。
-
linear = 線性霧,從 <start> 開始到 <end> 結束的這一段距離有霧。
-
exp = 霧以幾何方式增加(fog = 1/e^(distance * density)), 使用濃度 <density> 參數控制。
-
exp2 = 霧以幾何的二次方增加,更加快速(fog = 1/e^(distance * density)^2),使用濃度 <density> 參數控制。
-
colour
-
3個0到1之間的符點數組成的序列,表示紅色、綠色、藍色的亮度。
-
density
-
用於'exp'或者'exp2'霧類型的濃度參數。雖不用於線性模式,但是也必須寫上,作為預留位置。
-
start
-
線性霧距離鏡頭的開始距離。在其它模式下,儘管不用這個參數,也必須寫上,作為預留位置。
-
end
-
線性霧距離鏡頭的結束距離。在其它模式下,儘管不用這個參數,也必須寫上,作為預留位置。
樣本: fog_override true exp 1 1 1 0.002 100 10000
colour_write
設定此渲染通路的顏色寫入是開啟還是關閉的。
格式: colour_write <on|off>
如果顏色寫入被關閉,那麼此渲染通路中沒有可見像素寫入螢幕。你也許認為這沒什麼用,但是如果你關閉顏色寫入並且合理利用其他一些小的渲染設定,你可以使用這個渲染通路在執行後續的填充顏色資料的渲染通路之前初始化深度緩衝區。這樣可以極大地提升效果,尤其是當你使用複雜的片斷程式的時候,因為如果深度檢測失敗了,片斷程式根本就不會運行。
預設: colour_write on
start_light
設定此渲染通路使用的首個光源。
格式: start_light <number>
你可以使用這個屬性設定此渲染通路的光源的開始位置。換句話說,如果你設定start_light為2,那麼被處理的第一個光源就是實際列表中的第三個光源。例如,你可以利用這個選項,使用不同的渲染通路處理第一組的幾個光源對第二組的幾個光源,或者使用它與iteration選項協作,從列表的給定點開始迭代(例如,在第一個渲染通路裡處理頭兩個光源,然後從此開始每次兩個光源重複進行)
預設: start_light 0
max_lights
設定此渲染通路使用的光源的最大數量。
格式: max_lights <number>
光源的最大數量由渲染系統設定,通常為8,常用於渲染固定功能材質。當你要使用可程式化管線(詳見3.1.9
在渲染通路中使用頂點程式和片斷程式部分),這個限制依賴於你要啟動並執行程式。如果你使用'iteration once_per_light'(詳見下面 iteration),則它的有效性僅限於你想使用的渲染通路的數量。但是,無論你使用哪種方法,都要應用max_lights限制。
預設: max_lights 8
iteration
設定此渲染通路是否被迭代,多次重複執行。
格式 1: iteration <once | once_per_light> [lightType]格式 2: iteration <number> [<per_light> [lightType]]格式 3: iteration <number> [<per_n_lights> <num_lights> [lightType]]
樣本:
-
iteration once
-
渲染通路只執行一次,預設設定。
-
iteration once_per_light point
-
渲染通路每個光源點執行一次。
-
iteration 5
-
此渲染通路的渲染狀態將被建立,並且繪圖調用將執行5次。
-
iteration 5 per_light point
-
此渲染通路的渲染狀態將被建立,並且繪圖調用將每個光源點各執行5次。
-
iteration 1 per_n_lights 2 point
-
此渲染通路的渲染狀態將被建立,並且繪圖調用將每2個光源點執行5次。
依照預設設定,渲染通路只執行一次。但是,如果你使用可程式化管線,或者你希望超出支援的光源數量限制,你或許想要使用once_per_light選項。在這種情況下,只有光源0被使用,每次使用不同的光源作為光源0,渲染通路執行多次。顯然,這會使渲染通路的代價很高,但是,考慮1到n個光源的每像素光照效果,這可能是唯一達到這種效果的辦法。
使用數字代替“once”表示建立渲染狀態後渲染通路的一次以上的迭代執行。渲染狀態在初始化建立後就不再改變,所以對於使用需要迭代多次相同渲染狀態的可程式化渲染,重複的繪圖調用是非常快速和理想的。例如,皮毛、動作模糊、特殊濾鏡等渲染。
如果你使用了once_per_light,你也應該在此渲染通路之前的技術裡增加一個環境渲染通路,否則,當這個物體附近沒有光源時,它就不會被渲染;即使你的情境裡沒有環境光線時,這也是很重要的,因為原本你仍然是想要顯示物體的輪廓的。
此屬性的光源型別參數僅在你使用once_per_light、per_light或者per_n_light時應用,且還限制運行單一類型光源('點光源'、'方向光源'或'斑光源')的渲染通路。如下面的例子所示,這個渲染通路將會每個電光源執行一次。如果你能估計到將要處理的光源類型,這會是有用的,因為當你要寫一個頂點/片斷程式時,它會很容易。至少點光源和方向光源可以用一種方法處理。
預設: iteration once
樣本:使用了一個在第二次渲染通路中包含10次迭代操作用以產生皮毛的簡單的皮毛渲染材質指令碼
// GLSL simple Furvertex_program GLSLDemo/FurVS glsl { source fur.vert default_params { param_named_auto lightPosition light_position_object_space 0 param_named_auto eyePosition camera_position_object_space param_named_auto passNumber pass_number param_named_auto multiPassNumber pass_iteration_number param_named furLength float 0.15 }} fragment_program GLSLDemo/FurFS glsl { source fur.frag default_params { param_named Ka float 0.2 param_named Kd float 0.5 param_named Ks float 0.0 param_named furTU int 0 }} material Fur{ technique GLSL { pass base_coat { ambient 0.7 0.7 0.7 diffuse 0.5 0.8 0.5 specular 1.0 1.0 1.0 1.5 vertex_program_ref GLSLDemo/FurVS { } fragment_program_ref GLSLDemo/FurFS { } texture_unit { texture Fur.tga tex_coord_set 0 filtering trilinear } } pass grow_fur { ambient 0.7 0.7 0.7 diffuse 0.8 1.0 0.8 specular 1.0 1.0 1.0 64 depth_write off scene_blend src_alpha one iteration 10 vertex_program_ref GLSLDemo/FurVS { } fragment_program_ref GLSLDemo/FurFS { } texture_unit { texture Fur.tga tex_coord_set 0 filtering trilinear } } } }
注意:使用GPU程式自動參數pass_number和pass_iteration_number告訴頂點或片斷程式渲染通路數量和迭代數。
point_size
此設定允許你在渲染一個點列或者一個point sprites列時改變點的大小。這個命令的插值依賴於point_size_attenuation選項——如果是關閉的(預設情況),點的大小是螢幕像素的大小;如果是開啟的,表現為標準化螢幕座標(螢幕高為1.0)。
注意:某些裝置有其所支援的點的大小的上限——相同的顯卡不同的應用程式介面可能不同!不要相信點的大小,因為那些螢幕上很大的點可能僅限於某些顯卡。最高像素的範圍從64像素到256像素。
格式: point_size <size>預設: point_size 1.0
point_sprites
這個設定指定此渲染通路的硬體point sprites渲染是否開啟。如果開啟了,意味著一個點列被作為一個四元組列渲染而不是作為一列點渲染。如果你使用了公告板集並且只需要使用基於公告板的大小相同的點,使用這個選項是非常有用的。你也可以在任何其它點列渲染中使用這個屬性。
格式: point_sprites <on|off>預設: point_sprites off
point_size_attenuation
定義點的大小是否根據視覺空間距離增加而衰減,以及以何種方式衰減。當你使用point sprites時,這個選項特別有用,因為它定義了當遠離鏡頭時,應如何減小尺寸。你也可以關閉這個選項,使point sprites成為一個常數的螢幕尺寸(像點一樣),或者開啟這個選項,使之隨距離而改變。
如果你開啟了這個選項,你只要提供最後3個參數。衰減方程為點的大小乘以1 / (constant + linear * dist + quadratic * d^2);因此關閉這個選項就相當於(constant = 1, linear = 0, quadratic = 0)且標準透視縮減是(constant = 0, linear = 1, quadratic = 0)。後者假設你指定開啟這個選項但未給出後3個參數。
注意衰減的結果應限於點尺寸的最小和最大值之間(詳見下面介紹)。
格式: point_size_attenuation <on|off> [constant linear quadratic]預設: point_size_attenuation off
point_size_min
設定點衰減(詳見上面point_size_attenuation)的最小值。細節詳見上面point_size。
格式: point_size_min <size>預設: point_size_min 0
point_size_max
設定點衰減(詳見上面point_size_attenuation)的最大值。細節詳見上面point_size。 0值意味著將最大值設定為當前顯卡所支援的最大值。
格式: point_size_max <size>預設: point_size_max 0