游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1830|回复: 2

【求教】关于shader中使用if的效率问题

[复制链接]

29

主题

157

帖子

163

积分

注册会员

Rank: 2

积分
163
发表于 2008-8-14 20:02:00 | 显示全部楼层 |阅读模式

假设现在我的场景中的所有物体可以分为两类:

1)带一张普通纹理贴图的。
2)带一张普通纹理贴图和一张光照图的。

如果我要使用shader替换固定管线来渲染上述物体,那么我有两种方式来写shader:
1)在一个shader中用条件选择语句(如if)来分别渲染以上物体。
2)写两个shader,分别处理相应的渲染。在C++中判断物体的材质类型,并根据材质类型切换使用相应的shader程序。

那么,请问以上两种方法那一种效率比较高呢?

ps:上述的情况只是举例而已,其实很多时候会遇到这种情况:如果两个物体的渲染方式差别很大,那么毫无疑问用两个shader。可是如果两个物体的渲染方式相近,但又不完全相同,这种时候是用if还是写成两个shader呢?

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2008-8-15 16:25:00 | 显示全部楼层

Re:【求教】关于shader中使用if的效率问题

当然是2

29

主题

157

帖子

163

积分

注册会员

Rank: 2

积分
163
 楼主| 发表于 2008-8-15 20:46:00 | 显示全部楼层

Re:【求教】关于shader中使用if的效率问题

呵呵,多谢楼上的朋友。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 14:50

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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