【厚積薄發】半透明物體如何實現陰影效果?

2021-01-20 侑虎科技

這是第123篇UWA技術知識分享的推送。今天我們繼續為大家精選了若干和開發、優化相關的問題,建議閱讀時間10分鐘,認真讀完必有收穫。

UWA 問答社區:answer.uwa4d.com

UWA (僅限技術交流)

渲染

Q:當"RenderType" = "Transparent"的時候貌似是沒有辦法接受陰影的。我們需要在場景中做一層半透的地表, 來掩蓋模型和地表之間的接縫,所以需要顯示陰影, 請教各位大佬有什麼好的方法嗎?另外我想了解下為什么半透明物件默認不能接受陰影呢?

A:拋開Unity引擎,從本質上說,半透物體肯定是可以接受陰影的。之前就實現過地表有一塊玻璃材質,會在玻璃上以及下面的物體上都有投射的陰影效果。所以如果自己編寫的Shader,想要接受陰影,只需要採樣Shadowmap,走一下陰影計算的過程就可以了。

對於Unity引擎,我試了一下的確選擇Transparent的RenderType也就沒有了陰影,這個我不是非常清楚是否可以自己在Shader中去強制走一下Shadowmap的處理過程來解決,題主可以試下。

但是題主要注意,半透物體接受陰影的情況下,尤其是題主要解決的這種覆蓋接縫的情況,會導致這部分最後產生的陰影變得比較重的效果,因為半透下面的物體肯定還會有陰影產生,半透的陰影雖然可以受Alpha的影響變淡,但是疊加在一起就會出現變得更暗的問題。當然Transparent的部分不接受陰影,意味著陰影效果經過Alpha Blend之後會變得淡。

感謝賈偉昊@UWA問答社區提供了回答。

UWA:這個問題恰好之前做了些嘗試,正如@賈偉昊所說,內置的Transparent是不接受陰影的,但可以嘗試在自定義shader中強制走Shadowmap的。

參考代碼如下:

但直接用這個Shader也還是沒有效果…因為文檔裡有句話,重點是粗體:

Only opaque objects cast and receive shadows so objects using the built-in Transparent or Particle shaders will neither cast nor receive. Generally, you can use the Transparent Cutout shaders instead for objects with 「gaps」 such as fences, vegetation, etc. Custom Shaders must be pixel-lit and use the Geometry render queue.

所以需要把Render Queue調整到2500:

然後效果就出來了:

該問題來自UWA問答社區,歡迎大家轉至社區交流:

https://answer.uwa4d.com/question/5b67b9851e88b37d34e651da

Lightmap

Q:我使用ShadowMask模式烘焙好了場景,生成了正確的Lightmap,其中包含Lightcolor和ShadowMask。之後將場景的物體和光照圖等信息用自己的格式存儲,啟動遊戲時再重建整個場景。

但是Lightmap正確設置之後,SHADOWS_SHADOWMSK宏沒有被打開,Shader中只找到了Light Color 的Sampler,並沒有找到ShadowMask的Sampler。

1)如何設置才能開啟SHADOWS_SHADOWMSK的keyword,並正確地將貼圖傳入Shader(不能手動在材質上打開keyword,傳入的貼圖是默認的白色)?

2)另外之前因為場景物體設置成了靜態,烘焙了光照圖後不產生和接受陰影,但是自己從Prefab中創建出來的物體就會產生和接受陰影,是只能加載後將Renderer上的這兩個選項關閉麼?還是有什麼統一設置?

A:第一個問題,從題主的描述上來看,你們重建整個場景,是否連同當時烘焙混合光照的那盞燈光也是重建出來的?如果是,確實會導致ShadowMask無法使用,我這邊的做法是保留場景中用來烘焙混合光的那盞光源,這樣ShadowMask才會起作用,兩者有某種關係。場景中的物件可以保存為Prefab,加載後手動恢復以下Lightmap Index即可,烘焙光源留在場景中別刪。

第二個問題,題主從Prefab直接拖進場景中的物件,需要手動恢復LightmapIndex和UV數據,否則得到的是實時光照和陰影。

感謝Lujian@UWA問答社區提供回答,歡迎大家轉至社區交流:

https://answer.uwa4d.com/question/5b63ec54339d267d357c6cb8

製作

Q:我們遊戲類似偶像大師,但是穿模比較嚴重,有什麼成熟的方案嗎?嘗試了SpringBone,但是效果不理想。

A:之前做過換裝遊戲,研究過防穿幫做的比較好的競品,說下他們的做法供參考。

1)模型設計上,首先要規劃好每個服飾部位的範圍,這樣玩家自由搭配的時候,服飾本身穿幫的概率就降低了;

2)同一件服飾做多套模型,根據搭配服飾的size進行替換。以長褲為例:搭配運動鞋、涼鞋等短鞋時,使用正常模型;搭配長筒靴時,褲腿縮短,並且底部一定長度內的半徑縮小,產生長靴包在褲子外面的效果。

上面是針對靜止時穿幫的解決方法,效果是非常棒的,不過由於在美術設計上做了限制,服飾的豐富度會受到影響。對於一般性的動作,我們是使用了DynamicBone,參數仔細調的話效果也不錯。

音舞項目很多大幅度的動作,DynamicBone能起到多大效果就不清楚了。

感謝Walker@UWA問答社區提供回答,歡迎大家轉至社區進一步交流:

https://answer.uwa4d.com/question/5b614dc81e88b37d34e651c3

編輯器

Q:如何在自定義Inspector中同時修改多個物體的位置屬性?當我選定多個物體時,如何在Inspector中同時修改這些物體的位置屬性,例如x分量:

我嘗試自定義Editor腳本來實現,腳本如下:

該腳本會調用以下腳本:

將這個腳本掛在多個物體上,當同時選中這些物體,並點擊Inspector中的改變位置時,期望所有物體的x都會發生變化,但實際只有一個物體的x發生了變化,所以這裡會有什麼問題嗎?

UWA:代碼裡使用了target,而對於選定的多個物體,應當使用 targets ,該數組保存了選定的多個物體,如果只選擇一個物體時,則應當使用target。

該回答由UWA提供,歡迎大家轉至社區進一步交流:

https://answer.uwa4d.com/question/5b614dc81e88b37d34e651c3

編輯器

Q:Asset Serialization Mode中不同的序列化方式在運行時會有區別嗎?「Binary」和「Force Text」是只會在Ediotr中有所不同,還是會影響到構建後的APP?或者說,選擇不同的方式是否對APP的大小以及運行時的速度造成影響呢?

UWA:「Force Text」將Prefabs、scenes、meta files以及其他Asset文件用YAML的文本格式存儲,這樣雖然會在Editor中運行造成一定性能的損失,但其有一個最大的好處是,能夠處理Git這類版本管理中的衝突。而在生成APP時,Unity會將這些資源都進行二進位化。分別使用「binary」和「force text」對項目進行構建會發現,生成的APP的大小是一樣的,也就是說,構建過程中」force text」的文件也會轉為二進位。

該回答由UWA提供,歡迎大家轉至社區進一步交流:

https://answer.uwa4d.com/question/5b614dc81e88b37d34e651c3

今天的分享就到這裡。當然,生有涯而知無涯。在漫漫的開發周期中,您看到的這些問題也許都只是冰山一角,我們早已在UWA問答網站上準備了更多的技術話題等你一起來探索和分享。歡迎熱愛進步的你加入,也許你的方法恰能解別人的燃眉之急;而他山之「石」,也能攻你之「玉」。

官方技術博客:blog.uwa4d.com官方問答社區:answer.uwa4d.com官方技術(僅限技術交流)

封面圖片來自網絡

UWA GOT (Online) 內測中

構建高質量的管理流水線,讓每一次測試更有意義!

近期精彩回顧基於屏幕空間渲染的液體模擬 【虛幻引擎學習之路】基於Unreal引擎的大地形加載研究【萬象更新】看完性能簡報,想不優化好都難!UWA問答:用心解決「你」的每一個問題!

相關焦點

  • 凹凸不平的巖石陰影怎麼畫?怎樣表現物體的凹凸感?
    凹凸不平的巖石陰影怎麼畫?怎樣表現物體的凹凸感?怎樣才能畫好巖石?如何利用陰影來表現物體的凹凸感?想必這些都是繪畫初學者們經常在想的問題吧,今天輕備老師就在網絡上收集整理一些關於如何繪畫巖石的教程給大家,趕緊來看看吧。在工作中畫插圖的時候,怎麼去縮短畫畫時間是一項很重要的技能。
  • 初學者如何畫陰影?陰影繪畫技巧分享
    初學者如何畫陰影?陰影繪畫技巧分享!網點紙,又叫網片,各種網點紙所產生的效果被稱為網狀效果。網點紙的運用是畫漫畫不可缺少的手段,它能使漫畫創作的速度與質量得到明顯地提高,漫畫中的陰影部分多是用網點紙來製作的。由於網點紙圖案不同,種類可分為"灰網"、「花網」以及"反白網"三種。
  • 用keyshot的實驗室功能排除物體的反射,投影和貼圖
    其實keyshot用實驗室功能也可以排除物體的反射,投影,相機可見,半透明和玻璃單面貼圖等功能。那麼具體怎麼做呢?首先第一步,需要開啟keyshot的實驗室功能,社區搜自己開啟此功能。接下來第二步,我們需要先建一個簡單的場景,比如這樣的:然後第三步添加加不同的材質,平面我添加了地面的材質,圓角矩形給的金屬,球添加了塑料材質,換個環境讓陰影明顯一點。第四步,雙擊藍色的球打開材質圖面板,在實用工具裡添加射線面罩,連在不透明上面,會發現屬性裡面有幾個英文的參數。
  • ae中如何給素材添加陰影效果
    這節課我們主要來探索ae如何給素材添加陰影效果。打開ae後,新建一個自定義大小的合成。在合成內我們可以導入素材,也可以新建一些字幕。這裡我們以字幕來表現。選中字幕層,在效果控制面板添加投影drop shadow第一個參數是陰影的顏色,一般陰影都是黑色,當然我們如果想要絢麗,可以改成自己喜歡的顏色。
  • 教你如何畫出陰影
    如何繪畫陰影?很多萌新小白可能對於處理陰影可以說是一團漿糊,不知道從哪裡下筆才能畫好。今天的教程,就是關於如何處理陰影的。1、陰影的基礎  我們從球體開始理解。假設光源在左上方,則被光直接照射的部分稱為「明部」(受光部),陰影部分稱為「暗部」(背光部)。
  • 終於找到攝影的秘訣,除了簡潔之外,還要學會利用陰影
    光線是所有攝影的基礎,並且會影響我們的拍攝效果和觀看方式!我們說光線是構成或破壞圖像的要素,而知道如何使用光線將有助於使您拍攝出令人驚嘆的照片。但是,儘管我們將大量精力放在光線上,但陰影卻因缺少光線常常被忽略。這是不幸的,陰影對於攝影同樣重要。不同陰影之間的對比度可能會對構圖產生重大影響,並且知道如何使用這些對比元素可以拍攝出一些真正震撼的圖像。
  • 「安防+AIoT」底層技術詳解:RFID如何實現物體識別
    人臉識別技術在近兩年間獲得了大量的應用和曝光,起到了對人員識別、追蹤、管控的良好效果,因而為人所熟知。目前,隨著物聯網技術的發展,越來越多的設備獲得智能化升級,而對於物體和設備的識別、追蹤,就需要用到RFID技術來實現。
  • 米哈遊技術總監詳解《原神》畫面效果的技術實現
    今天的內容安排大致是:首先我會介紹一下《原神》主機平臺的基本情況,然後按照我們開發的時候改造渲染管線的思路,選擇部分的技術點進行更深入的分享,希望從渲染的角度,讓大家對於我們如何將《原神》帶到主機平臺有大致的了解。最後是一點我個人的開發體會。
  • PPT如何製作豎排版的照片牆的幻燈片?繪製一個漸變的半透明框?
    在進行PPT的排版時,如果圖片比較多的話,就需要在製作一種照片牆的排版方式,下面來看看如何操作吧!1.首先我們繪製出幾個矩形拼接在一起。2.然後將選形狀全部選中添加較粗的黑色邊框。7.最後添加一個半透明的漸變矩形框8.這樣看起來效果還是很不錯的吧!半透明的框在PPT製作的時候使用頻率比較高,下面小編就來教大家如何製作一個漸變效果的半透明框吧!1.首先我們繪製出一個矩形來,右鍵——設置形狀格式。
  • 攝影是光影的藝術:在攝影創作中,如何合理安排高光與陰影?
    想要獲得一張曝光正確的照片,攝影者需要處理好高光與陰影的關係,正確突出主體,讓畫面呈現清晰的影像。毫無疑問攝影是光影的藝術,在攝影創作中,安排好高光與陰影的關係十分重要。什麼是高光?高光即指光源照射到物體然後反射到人的眼睛裡時,物體上最亮的那個點就是高光,高光不是光,而是物體上最亮的部分,而且這些區域中仍然包含很多細節。什麼是陰影?陰影是指照片中曝光比較暗的地方,光線被物體遮擋會在光源的相反位置產生陰影。這些較暗的區域仍然具有一定能看到的細節。如何處理高光與陰影?
  • 微信專屬帥字半透明頭像製作方法!
    微信和QQ的透明頭像、半透明頭像之前有出過多次教程,時間過了這麼久,有些小夥伴自己不會製作,加上之前的方法和素材也有些過時,Ps:這種頭像安卓和蘋果都能用,但如果要改好必須用安卓系統的手機!不會改微信空白頭像的萌新請仔細看改空白頭像的教程,會改空白頭像的老玩家直接到文末獲取半透明素材~微信頭像居然會隱身!!
  • 技術分享|《原神》部分渲染效果分析(非官方)
    從我的觀察來看,遊戲中的可動物件的實時陰影是使用的ProjectShadow實現的。就是設置一個與光照角度一致的正交相機跟隨角色進行拍攝,設定一定的拍攝範圍,並在邊緣進行陰影過度。然後使用Project將渲染的圖投影到地面即可。好處是投影的距離可控,投影的物體和接收陰影的物體可控,陰影解析度高,且不進行燈光深度繪製的草上也可以繪製陰影,一句話就是性能較好。
  • 攝影用光之光線的種類與造型效果
    直射的陽光是自然界中最強的光線,它投射在物體上可以讓被攝體產生明顯的投影和強烈的明暗面對比。由於正面光的投射方向正對被攝體,光線的陰影落在物體的背面,被攝體的明暗之間沒有明顯的交界線,畫面透露出亮麗且安靜的視覺感受。
  • RTX30系列顯卡將顯著提升《賽博朋克2077》遊戲畫面效果
    光線追蹤漫射照明(Ray-Traced Diffuse Illumination)這種遊戲技術可以捕捉到天空的亮度以及來自不同物質表面的散射光,這在傳統的渲染中是很難實現的(或者比較耗費渲染性能)。啟用「光線追蹤漫射照明」之後,廣告牌和其他光源將用更為自然的顏色照亮它們的周圍物體,太陽和月亮也將更真實地照亮夜之城:2.
  • 成為光的學生,如何理解光線和顏色以提高攝影水平
    了解它的屬性,知道如何控制和塑造它——這些東西將帶你從一個業餘的快照攝影愛好者到一個有創意的攝影師。這是一個製作照片的問題,而不是簡單地牌照。從窗臺上的一個花瓶裡看到陽光,到最終的圖像,這個想法開始於簡單地看到光線。喬治·伊斯曼通過他的膠捲、簡單的照相機和隨時可用的處理技術的發展,幫助把攝影帶到了大眾面前。你一定聽說過他創辦的公司——伊士曼柯達公司。
  • 逆光攝影的效果是什麼
    在攝影中順光會顯得畫面比較平淡,而逆光是一種具有藝術魅力和較強表現力的光照,它能使畫面產生完全不同於我們肉眼在現場所觀察到的實際光線的藝術效果,那麼逆光攝影的效果是什麼呢?逆光拍攝是攝影用光中的一種手段,在攝影逆光的情況包括全逆光和側逆光兩種。從光位看全逆光是對著相機,從被攝體的背面照射過來的光,也稱背光;側逆光是從相機左右45度的後側面射向被攝體的光。
  • 海報的文字穿插效果,PPT也能輕鬆實現!不信,看這裡!
    (說實話,就是愛裝逼)其實這個效果,在平面設計裡面運用的比較廣泛,將畫面主體,和要表達的文字貫穿交織在一起,以增強畫面的表現力。比如這個再比如這個基本都是用PS實現的,原理其實是這樣的,把文字和對象疊起來,創建蒙版,然後利用畫筆將文字和主物體疊起來的部分擦除,造成穿插的錯覺。
  • 原來英偉達光線追蹤是這樣實現的!
    那麼光線追蹤到底是如何實現的呢? 有玩家會說,有很多早一些的遊戲也有很不錯的反射效果,那麼那些是不是光線追蹤呢?答案是否定的。這些遊戲出現的反射效果大都是光柵化渲染加屏幕空間反射SSR帶來的。
  • 使用Unity 粒子系統實現 2D 人物足跡效果
    它能夠保證對於任意角度,角色的移動速度都保持一致,並且這一向量對於腳印效果的實現很重要。 如有疑問可以查閱底部的教程連結或直接下載腳本。
  • 三維動畫製作如何模擬真實物體
    三維動畫技術模擬真實物體的方式,使其成為一種有用的工具。首先要策劃故事劇本,形成初步的動畫劇本,下一步是根據動畫腳本完成故事版本的製作過程。還可以將場景細分為畫面單元的鏡頭,從而形成動畫作品的整體結構。接下來,藝虎動畫詳細分析,三維動畫製作如何模擬真實物體。