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

 找回密码
 注册

扫一扫,访问微社区

搜索
查看: 1053|回复: 2

代码中怎么组织多通道渲染?

[复制链接]
发表于 2017-7-29 14:11:57 | 显示全部楼层 |阅读模式
我现在的需求是这样的:一个模型有许多不同的mesh,每个mesh所表现的显示效果可能不同,比如模型A,有M1,M2,M3面组成,M1和M2,M3所需显示的下过不一样;M1需要先正面渲染,再反面渲染,然后正反面得到的纹理叠加,得到纹理T1;M2用一次环境映射,得到纹理T2;M3用一般的光照渲染,得到纹理T3;最后将这到的三个纹理最后叠加。

现在实现的都是用FBO罗列一堆,这种逻辑能够抽象出来一种多通道的渲染吗?使用的时候只需载入我的渲染逻辑,然后一个渲染函数就能搞定?
发表于 2017-7-29 15:30:49 | 显示全部楼层
这个问题其实和渲染都没关系,本质上就是数据和逻辑+控制组织,跟许多行业的多阶段任务流的很相似。

首先想M1 M2 M3步骤所需要的输入、处理、输出,然后针对处理,确认需要的中间资源,包括额外的RT等等。然后每一步都有输出。最后针对这些逻辑和所需要资源进行优化,去除冗余,然后这个逻辑就可以表现为,一个函数丢进去,逻辑跑完,收工。

那么写成代码的话就是牵涉到实现的问题。我猜你所想的是一种流水线定义,然后载入,程序就直接挨个处理,直接完成。这个当然可以做到。比如在你的定义中,你可以声明几何体数据来源,M123这种,然后组织渲染的具体流程,以及参数,最后声明输出的结果。最后把各个步骤的输出结果再来组合,收工。
 楼主| 发表于 2017-7-29 19:16:54 | 显示全部楼层
Jedimaster 发表于 2017-7-29 15:30
这个问题其实和渲染都没关系,本质上就是数据和逻辑+控制组织,跟许多行业的多阶段任务流的很相似。

首先 ...

谢谢解惑!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2018-7-19 12:02 , Processed in 0.037949 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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