日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

unity 太阳自发光_unity shader基础之——unity中实现环境光、自发光

發布時間:2023/12/15 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unity 太阳自发光_unity shader基础之——unity中实现环境光、自发光 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上篇主要講的是unity中的光照模型及其原理,還有幾種光照類型(自發光、環境光、漫反射、高光反射),后面幾篇文章就開始在unity中實現這幾種光照類型,本篇在unity實現自發光、環境光。

一、unity中的環境光和自發光

在標準光照模型中,環境光和自發光的計算是最簡單的。

環境光可以在Window->Rendering->Lighting Settings->Ambient Source/Ambient Color/Ambient Intensity中控制。在shader中,我們只需要通過unity內置變量UNITY_LIGHTMODEL_AMBIENT就可以得到環境光的顏色和強度信息。

而大多物體是沒有自發光特性的,如果要計算自發光非常簡單,只需要在片元著色器輸出最后的顏色之前,把材質的自發光emission計算好添加到輸出顏色即可。

拓展:

這里如果要讓物體全部區域都自發光,直接添加自發光顏色即可。如果要在某些特定區域去自發光,比如一個玩家模型,頭上有一顆寶石,只讓寶石擁有自發光,下圖是沒有自發光效果的原圖:

1. 要添加自發光效果那么首先需要加上一張美術做好的黑白通道圖,白色區域是寶石的區域,其他地方全黑(原理是白色各向量分量顏色默認值是1,黑色是0,所以和其他參數進行相乘后,黑色區域最后結果始終是0,加到片元輸出顏色中沒有變化,白色是1,乘以定義的自發光顏色還是自發光的顏色值),如下圖:

2. 然后聲明屬性(包括通道圖、自發光顏色、強度)

_EmissionTex("Emission Texture",2D) = "black"{}

_EmissionColor("Emission Color", Color) = (0,0,0,0)

_EmissionPower("Emission Power",Range(0,2)) = 1

3. 然后定義相應變量:

sampler2D _EmissionTex;

fixed _EmissionPower;

fixed4 _EmissionColor;

4. 對通道圖進行采樣,并和顏色、強度相乘、算出自發光最終顏色值:

fixed4 em = tex2D(_EmissionTex, i.uv);

fixed3 Emission = _EmissionColor * em * _EmissionPower ;

5. 添加到最后的輸出顏色中:

c += Emission;

6. 我們可以自己通過材質面板控制自發光顏色、強度,來調整寶石的自發光,這里自發光如果想擴散出來一點光暈,可以結合全屏后處理的bloom效果,這里不再介紹,有興趣可以自行研究,最后效果圖如下:

版權聲明:本文為CSDN博主「小橙子0」的原創文章,

遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/cgy56191948/article/details/102486311

總結

以上是生活随笔為你收集整理的unity 太阳自发光_unity shader基础之——unity中实现环境光、自发光的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。