游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2454|回复: 3

求助,渲染状态切换时效率的问题

[复制链接]

54

主题

116

帖子

122

积分

注册会员

Rank: 2

积分
122
发表于 2010-8-2 13:24:00 | 显示全部楼层 |阅读模式
请教个问题,我把一些常用的渲染状态封装到一个结构体中(比如alpha 测试,混合,cull,fillmode,纹理过滤等)。在渲染前通过这个结构体中的信息来设置渲染状态。为了提高效率想减少渲染状态的设置,保存了当前渲染状态,在设置的时候和结构体中的状态比较判断,如果一样则不进行设置,不一样则进行设置,并且更新当前状态。但是等编完这段代码,我发现这个函数中充斥着If判断,心里很纠结这样做有没有必要。if判断的代价和SetRenderState的代价哪个更大?求教了,谢谢。

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2010-8-2 15:03:00 | 显示全部楼层

Re:求助,渲染状态切换时效率的问题

编译之后if只是多了1,2条指令而已
而SetRenderState意味着函数调用,os从user mode到kernel的转换,驱动的调用等等
所以如果冗余状态很多,用if做“early-out”是很值得的

1

主题

39

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2010-8-2 15:09:00 | 显示全部楼层

Re:求助,渲染状态切换时效率的问题

同意楼上的观点,加个开关,控制调用函数频率.
是能提高代码效率的

54

主题

116

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2010-8-2 15:51:00 | 显示全部楼层

Re:求助,渲染状态切换时效率的问题

非常感谢两位
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-22 16:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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