| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity Shader报错:缺少frag_ao.cginc文件的解决方案 -> 正文阅读 |
|
[游戏开发]Unity Shader报错:缺少frag_ao.cginc文件的解决方案 |
报错:Shader error in 'Hidden/SSAO': failed to open source file: 'frag_ao.cginc' at line 42 (on glcore)意思为项目中Standard Assets文件夹下Shader文件夹中缺少frag_ao.cginc 这个文件。两种办法解决:1.从别的项目把该文件拷过来放在指定文件夹位置下;2.或者把下面代码内容复制下来,并保存成文件名为“frag_ao.cginc”的文件即可。 half frag_ao (v2f_ao i, int sampleCount, float3 samples[INPUT_SAMPLE_COUNT]) { // read random normal from noise texture ? ? half3 randN = tex2D (_RandomTexture, i.uvr).xyz * 2.0 - 1.0;? ? ? ? // read scene depth/normal ? ? float4 depthnormal = tex2D (_CameraDepthNormalsTexture, i.uv); ? ? float3 viewNorm; ? ? float depth; ? ? DecodeDepthNormal (depthnormal, depth, viewNorm); ? ? depth *= _ProjectionParams.z; ? ? float scale = _Params.x / depth; ? ? // accumulated occlusion factor ? ? float occ = 0.0; ? ? for (int s = 0; s < sampleCount; ++s) ? ? { ? ? // Reflect sample direction around a random vector ? ? ? ? half3 randomDir = reflect(samples[s], randN); ? ? ? ? // Make it point to the upper hemisphere ? ? ? ? half flip = (dot(viewNorm,randomDir)<0) ? 1.0 : -1.0; ? ? ? ? randomDir *= -flip; ? ? ? ? // Add a bit of normal to reduce self shadowing ? ? ? ? randomDir += viewNorm * 0.3; ? ? ? ? float2 offset = randomDir.xy * scale; ? ? ? ? float sD = depth - (randomDir.z * _Params.x); // Sample depth at offset location ? ? ? ? float4 sampleND = tex2D (_CameraDepthNormalsTexture, i.uv + offset); ? ? ? ? float sampleD; ? ? ? ? float3 sampleN; ? ? ? ? DecodeDepthNormal (sampleND, sampleD, sampleN); ? ? ? ? sampleD *= _ProjectionParams.z; ? ? ? ? float zd = saturate(sD-sampleD); ? ? ? ? if (zd > _Params.y) { ? ? ? ? // This sample occludes, contribute to occlusion ? ? ? ? occ += pow(1-zd,_Params.z); // sc2 ? ? ? ? //occ += 1.0-saturate(pow(1.0 - zd, 11.0) + zd); // nullsq ? ? ? ? //occ += 1.0/(1.0+zd*zd*10); // iq ? ? ? ? }? ? ? ? ? ? } ? ? occ /= sampleCount; ? ? return 1-occ; } !!写的可能有点不详细,不明白的也可以(看图添加)私聊我哟~~? unity开发技术交流V群:需要进unity开发技术交流群的可以加V,拉你们进V群~ unity开发技术交流QQ群:594177907 个人VX:leeyxx1109765908 个人QQ:1109765908 注意:添加群时标注来意哟~ |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/28 12:03:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |