游戏开发论坛

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

请教shader达人们!!

[复制链接]

7

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2005-3-25 11:25:00 | 显示全部楼层 |阅读模式
我要渲染几个东西,然后对应的有几个shader
BeginScene()
设置shader1
渲染物体1
设置shader2
渲染物体2
设置shader为NULL
EndScene()

问题来了,我渲染第二个shader没有问题,但是渲染第一个shader的结果和单独只渲染第一个shader的结果不一样。单独只渲染第一个shader的结果是我想要的。
我的第一个shader里面有写进去的常数全局的变量
第二个的全局变量全部是我渲染的时候传进去的,不知道有没有关系。

另外shader里面的全局变量写进去了,那么渲染的时候会每执行一边都初始化一下这个全局变量吗?会不会被别的因素改变了?

请各位达人不吝赐教。

7

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
 楼主| 发表于 2005-3-25 11:36:00 | 显示全部楼层

Re:请教shader达人们!!

现在,我把第一个shader的常量写进main函数就正常了。
也就是说这些常量的内容被改变了,可是为什么会改变呢,不明白。

另外我多渲染一个skinmesh之后,第一个shader的结果也会异常,不知何故,郁闷ing~~

1

主题

50

帖子

50

积分

注册会员

Rank: 2

积分
50
发表于 2005-3-25 15:55:00 | 显示全部楼层

Re:请教shader达人们!!

使用Shader之前确实必须重新初始化全局变量(cg中的uniform类型)。
使用effect文件似乎可以部分解决这个问题,你可以试试。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-24 23:17

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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