中文第一计算机图形学社区OpenGPU 版权所有2007-2018

 找回密码
 注册

扫一扫,访问微社区

搜索
查看: 1773|回复: 5

在Deferred Rendering 中如何支持多材质呢?

[复制链接]
发表于 2017-2-7 20:07:40 | 显示全部楼层 |阅读模式
在构建自己的渲染器过程中遇到了多材质的问题
我看到有solution说可以用material id配合MTR来解决,但没有说的很清楚,请问一个支持多材质的deferred renderer该如何设计?
具体到deferred shading 和 deferred lighting 又有什么区别?
发表于 2017-2-8 00:43:23 | 显示全部楼层
material id就是根据id每个材质走个光照pass。特殊材质可以混合forward+走
发表于 2017-2-26 22:48:57 | 显示全部楼层
延迟渲染是通过材质ID来管理不同类型的材质,把这些材质ID与对应的材质数据统一写入一张 专门存储材质信息的纹理里,最后在延迟渲染的时候,根据当前像素的材质ID号,从这张纹理里取出对应的材质数据渲染即可。
这个材质ID你可以在绘制MRT阶段,直接存在alpha通道里,在最后light pass的时候取出来。


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


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

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

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

目前是大三学生,这个论坛对我的帮助还是很大的
发表于 2017-3-23 10:18:19 | 显示全部楼层
forword+ 以后肯定是趋势,很好解决了 defer shader 多个材质问题。不过现在显卡带宽还是瓶颈,以后慢慢会好的,DX9和手机根本很难支持。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|小黑屋|Archiver|手机版|中文第一计算机图形学社区OpenGPU

GMT+8, 2018-4-23 23:28 , Processed in 0.041885 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表