在第四篇的簡單光照模型中,做了一個簡單的卡通著色器。對的,講的思路是馮氏著色的方法,但是最后做出來的實際上是卡通著色。
原因很簡單,是因為像素著色器里 這一行的效果。
(資料圖)
什么是lerp?什么是saturate?為什么要 LightNormal*16+0.5?
為了方便觀察,在這里放置一個球。球可以在PE里快速建出,記得隨便貼上個純色的貼圖,還有toon。放上簡單光照的fx效果,如圖。光照部分和陰影部分有較為明顯的二分。所以是非真實感渲染 (Non-Photorealistic Rendering) ,NPR。
實際上把后面的*16+0.5刪掉就可以得到?真實感渲染(Photorealistic rendering)。
為了看得更明顯,所以這里調整了一下強度和顏色。可以看到這種層層的漸變效果。真實渲染?旨在渲染真實感的畫面,而NPR則追求更加有藝術感的畫面效果。
回到最開始的問題,什么是lerp?
lerp函數,是經常用的插值函數。其意義是 lerp(a,b,w),計算 a + w*(b-a),在a和b之間插值,w表示權值,范圍0~1。
為了看得更明顯,我們可以把前邊的MaterialToon改成float3(0,0,0),這樣就是黑色,與白色,進行插值。
saturate函數,很好理解,saturate(x)將x的數值,截取在0-1之間。
接下來我們更改一下LightNormal*16,從左到右依次是*32,*64。可以看到,邊緣的強烈分割。
還有一個插值函數,smoothstep,作用和用法跟lerp一致,但兩者之間有一定的區別,這里不多贅述,因為用不到。可以借鑒學習https://blog.csdn.net/qq_41835314/article/details/128618789
最后一個問題,為什么要?LightNormal*16+0.5?
通過修改數值能夠有所體會,若想究其原理,需要拿出紙筆,動手算算或者思考一下。
1.在球的光照亮面取一個點,邊緣上取一個點,暗面取一個點。
2.用float LightNormal = dot(Normal,-LightDirection)
分別算出LightNormal的正負,大小的排序。
3.saturate(LightNormal*16+0.5),取得三者權重,然后分別插值。
關于HLSL中的函數,這里就不搬運了,參考微軟官方文檔,或者參考https://blog.csdn.net/eloudy/article/details/71258367
標簽:
- 今日視點:MME編寫入門(五)簡單光照模型 補充說明
- 伍六七三四季的小問題
- 寧夏西海固:糧田一“整”變良田
- 天天即時看!鄭州供暖延長至3月18日零時 不另收費用
- 中國專家研發仿生納米遞氧系統 或讓更多腦卒中患者得到有效救治
- 【時快訊】更多國家將迎中國“首發”團 為行業送來政策利好
- 每日熱訊!公安部“揭秘”個人信息泄漏源 金融消費者該如何避坑?
- 吉野家一餐廳飯菜中混入蟑螂 執法檢查又在現場發現43只 世界速看
- 當前聚焦:上海男子花16萬辦健身卡可用到一百歲 要求轉卡卻都推三阻四
- 韓國旅游業急招人手迎接中國游客,還推出花式促銷|環球觀天下
- 西方媒體對北溪集體沉默后又反常同步發聲,汪文斌:美國如何解釋?是不是有難言之隱?|短訊
- 今日熱文:以免費培訓為噱頭高價兜售消防產品?北京消防打假——
- 環球快消息!香港大學:在內地無委托中介機構代招生,無“內推”機制
- 中、伊、俄等國海軍將舉行聯合軍演!
- 官宣!悄咪咪懷孕12周,4顆腫瘤怎么辦…
- 杭溫鐵路二期首座超五公里隧道順利貫通
- 農發行固陽縣支行開展“金融消費者權益日”宣傳活動|世界聚看點
- 觀察:農發行固陽縣支行開展“反有組織犯罪—反洗錢在行動”宣傳活動
- 當前最新:農發行武川縣支行積極開展消費者權益日宣傳活動
- 環球快播:平潭農發行:開展“3·15”消費者權益保護教育宣傳周活動
- 【DD日報】『3.14』牧牧白miiu2D新衣發布回;淺川玉乃十五萬粉新衣紀念回_環球看點
- “神圣傳說”的射手座被抄襲?原畫師:能抄進藝術殿堂是它的歸宿|環球熱點評
- 石嘴山精準發力促重點群體就業創業_全球熱點評
- 我區26條舉措促進高校 畢業生高質量就業創業
- 全球即時看!有序穩妥開放出境游市場 為行業送來政策利好
- 北京麗思卡爾頓回應“女演員被困酒店廁所3小時”
- 隨手關燈、減少用紙、節約用水……生活中多一點兒小氣
- 兩次用藥失誤,雍正卻對其委以重任,劉聲芳究竟是不是大清第一名醫?-環球資訊
- 舊仔褲秒變時尚包包,DIY達人教你做
- “附近幾條胡同的街坊都愛來這兒逛逛”,他在東四十四條種下棵櫻桃樹