Site Tools


Rhino 5 圖檔支援

Rhino 5 在以下指令之下支援圖檔附件背景圖(BackgroundBitmap)圖框平面(PictureFrame)
在Rhino下最適合使用的圖檔尺寸為2的次方。
這是因為Rhino總是將圖檔以貼圖來顯示。

將圖檔存為貼圖

為了將一個檔案顯示為貼圖,Rhino利用OpenGL來做“貼圖texture map”一個多邊形或是多邊形網格。這是有很多原因:

  1. OpenGL將貼圖儲存在GPU記憶體.
  2. 因為 #1,OpenGL 的執行在硬體上,對於“貼圖”的實際大小有一定的需求(有其限制)
  3. 因為 #2,並沒有任何貼圖定義為“最大標準” 尺寸,這依據你的顯示卡跟驅動程式而定。
  4. 因為 #3,Rhino沒有辦法任意用一個不知多少解析度的檔案。
  5. 因為 #4,如果當Rhino遇到一個圖檔並不符合使用者顯示卡硬體的功能,那麼就必須調整圖檔大小來符合使用者的硬體。

圖檔尺寸必須為2的次方,並不是Rhino 5的 “必要條件”
然而,在Rhino內部(也就是OpenGL)就是2的次方值。 換句話說,你可以丟任何圖檔或是貼圖到Rhino 5,然後這個軟體會確保它適用於大部分的顯示硬體。

調整為2的次方值

圖檔尺寸不是2的次方值時,如何調整至適用呢?

如果Rhino需要調整圖案大小,它會將其調整到下一個最高的2次方值,比目前的尺寸更大,但比小於或等於硬體所能支援的最大尺寸。

這裡有些例子能夠幫助了解。 假設目前硬體的貼圖尺寸最大極限是8192 x 8192 如果Rhino看到一個標有尺寸的圖檔:

  • 256 x 256 - Rhino 什麼也不會更動,這個尺寸是完美的二的次方值。
  • 1024 x 1024 - Rhino 什麼也不會更動,這個尺寸是完美的二的次方值。
  • 1024 x 256 - Rhino 什麼也不會更動,這個尺寸是完美的二的次方值。
  • 127 x 127 - Rhino 將調整這個圖檔的尺寸到128 x 128, 下一個比較高的尺寸數值,並且是2的次方值,也比目前的尺寸還要大。
  • 129 x 129 - Rhino 將調整圖檔的尺寸到256 x 256,下一個比較高的尺寸數值,並且是2的次方值,也比目前的尺寸還要大。

Rhino 決不會“降低”一個圖檔的尺寸,因為那是個“損耗”的動作,所以永遠是將尺寸增加,而非降低,除非出現以下情況。:

  • 9000 x 6000 - Rhino將調整(縮減)圖檔尺寸至8192 x 8192。9000已經超出8192 的極限,而6000並不是2的次方值,6000下一個2的次方值是8192。
  • 9000 x 9000 - Rhino將(縮減)圖檔尺寸到8192 x 8192。9000 x 9000已經超過硬體的極限,所以將圖檔縮減到硬體的最大極限8192 x 8192。

像素化

當Rhino調整圖檔時,不會用任何採樣或是雙線性過濾的方式,而是直線性延伸或收縮。 所以原始尺寸跟調整尺寸的差距越大,結果看起來就越差。

以上面 129 x 129 的例子,Rhino基本上需要將圖檔尺寸加倍,結果就是每一個像素就是2 x 2的方塊。

這就是附圖顯示像素化的主要原因

然而,如果Rhino試圖將尺寸調整為128 x 128,結果看起來會更差,很多時候會發生直條紋現象 (banding),因為整行或整列的像素被移除了。
Rhino非不得已,不會縮減任何圖檔的尺寸,除非碰上硬體條件的限制。

基本建議:

圖檔尺寸數值儘可能接近2的次方值,如果可以的話,就直接把圖檔的尺寸存取為2的次方值吧。

以今日的硬體限制來看,我們最常看到的數值為4096 x 4096 以及 8192 x 8192。如果使用者想要做一個大的貼圖,這些就是圖檔尺寸的最高限制。

把圖檔設得太大其實是浪費時間與空間,也會導致Rhino捨棄掉大量的良好像素的資訊。

zh-tw/bitmap_display.txt · Last modified: 2020/08/14 (external edit)