1.紋理操作
1.1 重複、旋轉、位移、縮放
重複
但是要在水平方向上重複,還得允許
按照剛才的重複方式
如果設定為映象重複
位移
旋轉
1.2 翻轉與alpha生成顏色
正常的圖
不翻轉預設是翻轉的
預乘透明度
預先乘透明度
主要是會有一個描邊的效果
2.紋理屬性
2.1 紋理過濾
比如一張原圖很大,但是到3D場景中要變小,兩個解析度是不一樣的
放大兩種方法
第一種方式是最近鄰
直接取的是畫素來放大
最近鄰就是由原圖附近去找然後模擬一些顏色
設為線性,這個就比較光滑
縮小
最接近的畫素,較粗糙
線性,求平均
但是這兩種都還是有瑕疵,所以誕生了
mipmap解決摩爾紋條紋
mipmap原理是先算好縮小一倍的樣子,再算縮小一倍的樣子,再算,以此迴圈
這是預設的方式
注意這四種生成mipmap要開起,不然又會產生魔紋
剩下三種見上,無非就是效能消耗
各項異性anisotropy解決傾斜模糊問題
3.jpg_png_webp_dds_ktx_hdr_exr格式紋理
同一個魚眼圖不同格式
這些格式裡面最小的是ktx2,最大是hdr,主要就是曝光不同,沒有太大曝光要求,肯定越小越好
3.1 英偉達匯出最佳化壓縮
開啟軟體,開啟圖片,正常第一步選擇8bit,rgba
也可以選擇其他比如第二個就是hdr
右下角匯出
可選格式
後面用到可以回看影片教程
3.2 threejs中使用KTX2_DDS_TGA紋理
要使用ktx要匯入載入器
使用載入器要先例項化一個檔案,檔案位置在
移動到public下面
匯出為etx2圖片最好採用編碼
是否翻轉圖片,在匯出時設定
因為設定程式碼會不起效果
匯出的時候如果點選了生成mipmap,那麼久不能成為場景貼圖,這句程式碼失去效果
所以最好不勾選
其他的圖片就類似
3.3設定高動態範圍全景背景色調對映和色調曝光
這是針對於hdr圖的
載入hdr
背景色調
是給渲染器加
值有
第三個一般用於室外更柔和,四五個模擬電影質感
曝光
3.4 高動態範圍EXR_TIF_PNG載入使用
這三個都可以使用hdr的功能
跨平臺
tif類似於hdr也可以調節曝光
4.材質深度模式
離相機遠近叫做深度
深度圖用到的z-buffer演算法
說白了深度效果就是為了在3D中實現遮擋效果
要完成深度,就需要兩張圖,一張繪製出來的渲染圖,一張順帶用程式碼生成的深度圖,那麼兩者結合深度圖越白色的地方就會渲染的比較黑,實現陰影效果,深度越黑的地方實現遮擋效果
深度設定有三種
用在函式里面的有
一般小於等於用的多
輸入畫素就是渲染圖,緩衝器就是深度圖
當前有兩個平面
不寫入
總是寫入
深度寫入和深度測試程式碼
深度寫入就是深度圖會寫入進來,雖然看不到但是存在於記憶體中
深度測試就是檢不檢測深度,比如這裡設定的是比他小就會被大的遮擋,這個紅色要比有光的要大,那麼從紅色望過去按理說會遮擋住有光,那麼此時不開啟有光的深度測試,就不再檢測深度,同時渲染比紅色後渲染,那麼就會看到此時深度不生效
如果做深度測試
5.材質混合模式
混合模式可用值
設定混合模式,前面都是定義好的,只有最後一種自定義選擇的時候,才能去選擇blending下面的設定
不混合
完全不透明,透明區域用白色覆蓋
additive
兩個顏色直接相加,比如背景牆的黃色和平面的紅色相加 ,白色加上任何顏色還是白色
這種用在光上常見,兩個光結合
目標顏色也就是背景減去原顏色也就是紅色,那就是綠色
其他顏色減去白色都是黑色
直接相乘
兩個顏色相乘會得到一個更暗的顏色
透明乘任何都是白色
剩下就是自定義
5.1透明冰塊透明液體透明杯子多個透明物體混合渲染
一個模型杯子
裡面是裝有水的,但是外面看不見
原因是水是透明的,透明跟玻璃混合有一些問題
載入模型微調資料
先渲染冰塊再水再杯子
隱藏杯子和水,把冰塊材質變為透明
顯示水,發現冰塊不見
拿到水的材質,重新設定材質,並且為透明,透明度為0.5
其原因就是這裡沒有設定混合,所以預設就是原先水的透明度就是1,很透明,和裡面透明物體相乘就還是很透明1,那就完全看不到裡面,所以如果要解決,就把水的透明度調低
然後同樣設定杯子材質透明度
此時能夠勉強看到水和冰塊
第二種解決辦法就是混合
首先先把水混合調為自定義
此時就可以gui去調節
同理設定杯子
6.裁剪
6.1 裁剪平面
比如現在有這個一個物體
這是一個
裁剪是材質的屬性,一共三個
首先建立一個平面,這個平面是一個數學庫,不會真正大小,第一個引數是什麼位置,比如下面這個例子就是一個三圍向量,但是平行於y軸
第二個引數就是與原點的距離
然後設定材質的裁剪平面,並且在渲染器開啟裁剪平面
然後就可以透過設定剛才的兩個屬性,單獨來設定就是這麼設定,來達到一個裁剪的不同效果
裁剪也可以建立多個裁剪平面放入陣列
第一個是平行於y軸,第二個是平行於x軸,也就是第一個右邊,第二個上面會保留
而並集就是所有,也就是兩個都滿足的才會保留
預設的效果是並集,也可以交集,但是交集就是各滿足各的都可以保留
6.2 裁剪場景
裁剪場景就要用到渲染器的屬性
xy從什麼地方開始,裁剪寬高多少
那麼此時另外一邊,就可以空出來去弄其他的場景,甚至相機都可以再來一個
比如現在再來一個場景
7.模板渲染
現在有一個平面一個球
現在實現一個效果,讓小球只渲染在平面上,沒了平面,就沒了小球,這時候就需要平面作為一個模板
首先需要開啟
首先兩個都要設定屬性允許寫入
然後在模板(平面處)設定mask代表者寫入值允許範圍多少
ref是一個基準值,模板和寫入模板的應該保持一致,並且要在範圍內
然後是緩衝區判斷,就是什麼時候允許寫入,這個值表示當他們相等時寫入
最後當深度值和緩衝都相等時,在模板處設定透過寫入方式,固定的值
7.1 實現金屬切割面
前面裁剪物體後,會發現裁剪到的區域是空心的,如果想要實心呢
實現效果,建立平面,材質,注意屬性metalness是金屬度,roughness是粗糙度
那現在就可以用到模板了,只要切面才顯示
兩個物體首先是裡面這個物體