当前位置: 首页 > news >正文

【Unity渲染】URP透明物体自身渲染穿插异常问题

背景:

对于URP中的某个物体,我们如果希望他正反面都可以被渲染。

通常会有两种解决方案:

1.将网格设置为双面网格。(此种情况Mesh.RecalculateNormals计算结果可能会异常,解决可参考网格法线生成异常解决)

2.将材质设置为双面材质Render Face设置为Both
在这里插入图片描述

期望的结果:

图1
图2

异常结果

图3
很明显,可以看出渲染顺序按照1,2,3的顺序渲染了,导致显示异常问题。

异常原因

经测试后发现,如果勾选了材质球的双面渲染,在透明模式下,会按照网格中三角形标号,从前往后进行面片渲染。

导致排序靠后的面片,渲染在了前面。

而不是按照我们的期望,先渲染RenderFace=Back的情况,再渲染RenderFace=Front的情况。

结合图3和图4可已看出, 1面渲染在了最上面,2面渲染在中间,3面渲染在了最后面。对应着网格中三角形标号的先后顺序。
图4

解决方案

1.不再将材质球设置为双面渲染, 改为只渲染正面(RenderFace=Front)

2.增加网格面,将网格设置为双面网格。(需要注意,设置为双面网格可能会导致自动生成法线接口Mesh.RecalculateNormals计算结果异常,解决可参考网格法线生成异常解决)

即可解决透明物体自身渲染的异常问题。
在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/61545.html

相关文章:

  • c/c++:指针,指针定义和使用,指针大小4字节,野指针,空指针*p=NULL
  • CAS实现原⼦操作的三⼤问题,该如何解决?
  • Linux Shell 实现一键部署二进制go+caddy+filebrowser
  • 无人机巡检智能一体化解决方案
  • 2023-2029全球粘结剂喷射技术行业调研及趋势分析报告
  • Python每日一练(20230420)
  • 【社区图书馆】读《悲惨世界》有感
  • 随机蛙跳算法 (SFLA)简单实现(Matlab代码实现)
  • 【手把手做ROS2机器人系统开发二】熟悉ROS2基本命令
  • 如何训练个人的ChatGpt4
  • Rabbit与springboot整合-1
  • 项目沟通管理5大技巧 第4个很重要
  • vector(入门知识点)
  • 成人高考专业怎么选?看这三点
  • 设计模式:UML中的类图(6种关系)
  • 00后卷王的自述,我真有同事口中说的那么卷?
  • VS2022配置OpenGL+GLAD
  • javascript for循环的定义
  • 【安全与风险】安全研究的新课题
  • 4核8G云服务器腾讯云CVM S5和轻量应用服务器性能差异?
  • 【对比】文心一言对飚ChatGPT实操对比体验
  • C++:Article:链接器(二):符号决议
  • 期权价格上下限与期权平价关系
  • QT中TCP的学习
  • 编译选项与常用环境变量
  • 【SpringBoot2】SpringBoot开发实用篇
  • 接口自动化测试框架搭建全部过程
  • SQL学习(十)--DML_多表查询(针对数据表记录的join查询、子查询的操作)
  • Docker容器部署
  • 26岁转行网络安全,成功上岸安全开发!