記錄一個(gè)我認(rèn)為是比較缺陷的設(shè)計(jì),ScreenColor當(dāng)前不是全局的參數(shù)檬姥。官方文檔說無法兼顧所有情況曾我,所以不做全局,其他PIPELINE需求的健民,自己要針對(duì)性去實(shí)現(xiàn)抒巢。我是覺得這樣的設(shè)計(jì)還不如直接不做,讓開發(fā)者自己去定義實(shí)現(xiàn)秉犹,不然這種每個(gè)地方都有的有蛉谜,有的沒有。如果不是很熟悉文檔崇堵,你得先懷疑自己是不是哪里錯(cuò)了型诚,找?guī)讉€(gè)小時(shí)沒找到問題,用起來莫名其妙鸳劳,最后幸運(yùn)找到了對(duì)應(yīng)說明狰贯,靠,原來如此赏廓。十分弟弟涵紊。
1.設(shè)置
m_ColorHandle = UnityEngine.Rendering.Universal.RenderTargetHandle.CameraTarget;
cmd.GetTemporaryRT(m_ColorHandle.id, cameraTextureDescriptor, FilterMode.Bilinear);
2.Blitting到_GrabTexture2
int screenCopyID = Shader.PropertyToID("_ScreenCopyTexture");
buf.GetTemporaryRT(screenCopyID, m_OpaqueDesc, FilterMode.Bilinear);
buf.Blit(m_ColorHandle.Identifier(), screenCopyID);
buf.SetGlobalTexture("_GrabTexture2", screenCopyID);
3.使用上述獲得全局的GrabTexture2作為原本SceneColor
ShaderGraph中Sample GraTexture2 ,注意幔摸,這個(gè)地方的UV需要用ScenePosition.
這幾天研究了一下URP摸柄,感覺到UNITY的滿滿惡意。這玩意全網(wǎng)都找不到個(gè)像樣能說明白的教程抚太,零零散散而且不明不白塘幅。
官方文檔:
https://docs.unity3d.com/Packages/com.unity.shadergraph@8.2/manual/Scene-Color-Node.html