请选择 进入手机版 | 继续访问电脑版

开源计算机图形学社区(Open Source Computer Graphics Community) |OpenGPU Forum (2007-2013)| OpenGPU Project

 找回密码
 注册
搜索
查看: 1523|回复: 5

在Deferred Rendering 中如何支持多材质呢? [复制链接]

Rank: 4

注册时间
2016-11-15
积分
42
发表于 2017-2-7 20:07:40 |显示全部楼层
在构建自己的渲染器过程中遇到了多材质的问题
我看到有solution说可以用material id配合MTR来解决,但没有说的很清楚,请问一个支持多材质的deferred renderer该如何设计?
具体到deferred shading 和 deferred lighting 又有什么区别?

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

注册时间
2010-10-8
积分
18036
发表于 2017-2-8 00:43:23 |显示全部楼层
material id就是根据id每个材质走个光照pass。特殊材质可以混合forward+走

使用道具 举报

Rank: 9Rank: 9Rank: 9

注册时间
2016-5-6
积分
239
发表于 2017-2-26 22:48:57 |显示全部楼层
延迟渲染是通过材质ID来管理不同类型的材质,把这些材质ID与对应的材质数据统一写入一张 专门存储材质信息的纹理里,最后在延迟渲染的时候,根据当前像素的材质ID号,从这张纹理里取出对应的材质数据渲染即可。
这个材质ID你可以在绘制MRT阶段,直接存在alpha通道里,在最后light pass的时候取出来。


说句实话这个论坛在技术上的讨论方面十分空洞,新人学生围观,然后一群老鸟答非所问,许多人帖子 我实在不知道该如何形容。技术落后国内行业圈,任道重远。


使用道具 举报

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

注册时间
2010-3-27
积分
6093
发表于 2017-2-27 11:32:09 |显示全部楼层
说句实话这个论坛在技术上的讨论方面十分空洞,新人学生围观,然后一群老鸟答非所问,许多人帖子 我实在不知道该如何形容。技术落后国内行业圈,任道重远。

使用道具 举报

Rank: 4

注册时间
2016-11-15
积分
42
发表于 2017-3-18 16:46:28 |显示全部楼层
升级君 发表于 2017-2-26 22:48
延迟渲染是通过材质ID来管理不同类型的材质,把这些材质ID与对应的材质数据统一写入一张 专门存储材质信息 ...

感谢层主!我现在已经在OpenGL ES 3.0 上实现了TBDR,才熟悉了用纹理保存各种信息的思想Orz

目前是大三学生,这个论坛对我的帮助还是很大的

使用道具 举报

Rank: 16Rank: 16Rank: 16Rank: 16

注册时间
2009-10-21
积分
2622
发表于 2017-3-23 10:18:19 |显示全部楼层
forword+ 以后肯定是趋势,很好解决了 defer shader 多个材质问题。不过现在显卡带宽还是瓶颈,以后慢慢会好的,DX9和手机根本很难支持。

使用道具 举报

最近看过此主题的会员

您需要登录后才可以回帖 登录 | 注册

‹‹
我的工具栏

关于我们|手机版|Archiver|开源计算机图形学社区(Open Source Computer Graphics Community) | OpenGPU Project | OpenGPU Forum (2007-2013)

GMT+8, 2017-11-25 04:37 , Processed in 0.065118 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部