HDRP 关于新手向设置
吐槽
其实跟新高级材质HDRP后 对于材质小白来说真的非常不友好,就连最简单的
GetComponent<MeshRenderer>().material.color = Color.red;
都会出问题
就像直板机换智能机一样,新的功能的增加 会带来 原有功能的操作发生变化,这里踩了这个坑,在此记录一下,也给后来者做个借鉴。
导入
导入还是比较简单的,如图
打开插件管理直接搜索就可以了 如果 没有下载 右下 显示的是 Install 点击等待下载完毕即可,下载完成后就和我的 一样 是Remove了(再次点击 可移除组件)
ps:由于HDRP和默认材质所属渲染管线不同,理论上是不支持这两种材质互切的,需要在 开发之前确定使用何种渲染管线,以防之后修改十分废力。
刚刚导入的后 会弹出个选择框,让我们处理一下由于添加材质产生的问题:
直接点击 上方的Fix All 就行了(要知道具体啥是啥的话,就耐心点 自己翻译一下 就知道了,提示还是写的很清晰的),
如果 之前 没有设置好的HDRP会让你选择创建还是导入还是 无视,直接创建吧,自动的,
完成后 就这样了,
如果 不小心把这个窗口关了 也没关系,
Window=》 Rendering=》HDRP Wizard再次打开即可(不同版本的界面选项有点不同,大体上 就是在 渲染里找HDRP就对了)
材质问题
完成后 如果之前创建的部分材质 还是丢失的状态,可以通过下方的三个按钮 去尝试跟新,或者 手动替换(再次强调,理论上 两种管线其实不能互转,所以 基本转换的方法 都比较费力,一定要在创建项目时就 定好 是否使用,否则后期麻烦不断)
而默认模型的默认材质 也已经从 默认 变成了 HDRP/Lit
修改颜色 HDRP Color
之后就是简单的 调用修改颜色了:
GetComponent<MeshRenderer>().material.color = new Color(r, g, b, a);
这里我们公开一下
先将R设置为255 其他都是0吧:
虽然 程序允许设置 ,但是我们本来是打算修改一个颜色,而不是 把Cube 变成 太阳,
这是不对的,尝试多次后,发现 其实 这里的Color虽然 也是传入0以上的任何数字,但是 RGB值只有在0~1之间 才有修改颜色的效果,也就是 R/255 ,G/255,B/255 ,
当RGB的值 超过了而1之后,这时 就会变为亮度。
虽然在设置里看不出 有任何区别就是了,但好似确实是这个逻辑。
而且正常情况下 颜色也似乎呗调暗
而A在SufaceType为Opaque时 似乎无效,只有修改为Transparent时才有透明效果,值依然为0~255
至于明明是红色 看上去有点 黄,是因为 还有环境光的影响
总结下来的话 就得这样去修改 物体的颜色:
GetComponent<MeshRenderer>().material.color = new Color(r / 255f * brightness, g / 255f * brightness, b / 255f * brightness, a);
ps:这里的rgba 都是0~255 rgb除以255获得颜色值,而brightness是亮度
其实 泛光的 话 建议还是调整这里
因为 255/2551和25.5/25510效果是一样的,会导致 如果 颜色不是满值的话 亮度就出不来,
其实 只要不是全黑,多少还是会有点 泛光的……(我也不知道为什么)
要想切实的正正常常的显示 建议换个材质 HDRP/Unlit那个就不错🙂
就想单纯的改个色,没想到废这么大劲
好了,也算是个HDRP 关于Color的坑今天 遇到了 就记录一下,如果有谬误和补充的地方也欢迎各位大佬前来讨论交流。