游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1994|回复: 5

有个问题请教一下,关于dx10的

[复制链接]

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
发表于 2010-6-3 01:15:00 | 显示全部楼层 |阅读模式
最近想看看dx10的东西,虽然出来5年了,普及不好,还是很新的,变化真的很大啊

有个问题dx9里面经常用
fx->SetValue("name",xxx,sizeof(xxx)); 传自定义结构这种写法

dx10里面用什么方式传自定义结构体进去啊?
mFX->GetVariableByName("name")->as???,难不成要用AsConstantBuffer类型不成?
这玩意传值也很麻烦,该数据还要map unmap,不爽


才开始学习dx10,特请教一下

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2010-6-3 11:17:00 | 显示全部楼层

Re:有个问题请教一下,关于dx10的

直接SetRawValue也可以,或者As之后直接赋值也可以,用法更直观,本质上没什么变化

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2010-6-3 11:42:00 | 显示全部楼层

Re:有个问题请教一下,关于dx10的

比方说:

这个可以
mFX->GetVariableByName("gWVP")->AsMatrix()->SetMatrix((float*)&mWVP);

这个不行,结果出来时错误的,是哪里有问题啊?
mFX->GetVariableByName("gWVP")->SetRawValue(&mWVP, 0, sizeof(D3DXMATRIX));

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2010-6-3 11:53:00 | 显示全部楼层

Re:有个问题请教一下,关于dx10的

我X,竟然乱试,试出来,通过了
就是在
        hr = D3DX10CreateEffectFromFile(L"color.fx", 0, 0,
                "fx_4_0", shaderFlags, 0, md3dDevice, 0, 0, &mFX, &compilationErrors, 0);

shaderFlags里面使用了
D3D10_SHADER_PACK_MATRIX_ROW_MAJOR | D3D10_SHADER_PACK_MATRIX_COLUMN_MAJOR

竟然就可以了,第二句也通过了,这是何道理?
也不知加上这两个参数会不会有什么不良影响

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2010-6-3 13:06:00 | 显示全部楼层

Re:有个问题请教一下,关于dx10的

D3D10Effect默认的矩阵存储布局跟D3DXMATRIX是一样的,如果是直接设置Raw数据,需要多一次转置再传入ShaderConstant,在第二句前应该先Transpose一下,这样就不必设置那个flag了
SetMatrix会自动根据flag做相应的操作,因此都是正确的

119

主题

1367

帖子

1393

积分

金牌会员

Rank: 6Rank: 6

积分
1393
 楼主| 发表于 2010-6-3 14:42:00 | 显示全部楼层

Re:有个问题请教一下,关于dx10的

果然是这样,多谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-9 10:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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