| |
|
开发:
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学习笔记】8.透明效果 -> 正文阅读 |
|
[游戏开发]【Unity Shader学习笔记】8.透明效果 |
学习资料:《Unity Shader入门精要》第8章 源代码:Github 透明效果主要通过透明度测试或透明度混合两种方式实现,透明度混合可以实现半透明的效果。 透明度测试透明度没有通过测试的像素,直接被忽略 不能实现半透明效果 透明度混合关闭深度写入透明度混合需要关闭深度写入,半透明物体的深度值不会写入Z-buffer,但不关闭深度测试。 模型的渲染顺序很重要,按照深度从大到小的顺序进行渲染。处理不好模型有交叉的情况。 渲染顺序: (1)先渲染所有不透明物体,开启它们的深度测试和深度写入 (2)半透明物体按照深度排序,从后往前依次渲染,开启深度测试,关闭深度写入 渲染队列
打开深度写入使用两个pass渲染模型 第一个pass开启深度写入,但不输出颜色,只是把深度值写进深度缓冲 第二个pass进行透明度混合 实现效果:半透明物体和不透明物体之间的半透明关系正确,但半透明物体和自身交叉的地方没有半透明效果 混合命令源颜色S:片元着色器产生的颜色值 目标颜色D:颜色缓冲中的颜色值 混合命令: 混合因子
透明度值即为frag输出的透明通道值: 混合操作
双面渲染的透明效果透明度测试 关闭渲染剔除: 透明度混合 第一个pass只渲染背面 整体效果: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/25 16:09:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |