问题标签 [unity3d-shaders]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
46 浏览

c# - 如何用 替换 if 语句?使着色器在移动设备上工作的操作员?

我正在移植一个自定义着色器以使其在手机上工作,因为手机内的着色器不能有 if 语句。

我尝试用?运算符替换我的代码中的 if 语句,但我无法在 Unity 中编译而不会出现错误。我对 c# 很陌生,所以对我自己来说很明显我在这里缺少一些东西来完成这个。这里有更多经验丰富的程序员的建议吗?非常感谢大家。

// 原来的代码被注释掉了。

我还尝试将结果存储在变量中并返回,但也没有用。

错误信息:

“自定义/着色器”中的着色器错误:语法错误:意外令牌“返回”

0 投票
0 回答
13 浏览

unity3d - 是否有可扩展的方式在 Unity 中使用网格体,以便在其中绘制的片段使用不同的着色器路径?

我想在我的场景中包含不可见几何,对于几何内网格的所有部分,使用其着色器/材质上的一个纹理/着色路径,使用不同的纹理混合到不可见体积内的几何部分/阴影路径。

具体来说,我正在尝试建立一个环境,其中某些区域是“正常颜色”,而这些区域之外的任何东西都使用单调/灰色/破裂的外观。

我知道我可以将(特别是算法)体积作为参数添加到着色器(我想类似于灯光的处理),但是如果我最终有很多体积击中任何给定的网格,这可能会很快变得相当密集,更不用说开销了检查对象是否与每个体积相交。

目前我在 Unity 2020.3.28f1 中使用 URP 前向渲染。