游戏开发论坛

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

HLSL输出x模型材质颜色问题

[复制链接]

16

主题

68

帖子

72

积分

注册会员

Rank: 2

积分
72
发表于 2008-6-5 22:44:00 | 显示全部楼层 |阅读模式
初学HLSL,有一问题请教:
有一汽车x模型文件,其材质数为4(轮胎材质颜色为黑色,车头灯颜色为黄色,车窗白色,车身为绿色)。
如果在固定流水线中用
for(int i = 0; i < g_MtrlNum; i++)
{
     pD3Ddevice->SetMaterial(&Mtrls);
     g_pMesh->DrawSubset(i);
}
用shader代替固定流水线部分,那么:
for(int i = 0; i < g_dwNumMtrl; i++)
{
// 在这里如何将所有材质颜色传入顶点渲染器,是用SetVectorArray吗?如:
     g_ColorMesh.x = g_pMtrlMesh.Diffuse.r;
     g_ColorMesh.y = g_pMtrlMesh.Diffuse.g;
     g_ColorMesh.z = g_pMtrlMesh.Diffuse.b;
     g_ColorMesh.w = g_pMtrlMesh.Diffuse.a;
     g_pEffect->SetVectorArray("Color", &g_ColorMesh, g_dwNumMtrl);       
     g_pMesh->DrawSubset(i);
}
在顶点渲染器内如何输出这些材质颜色?
VS_OUTPUT_CT Main(VS_INPUT_CT Input_CT)
{
     //略
     Output.diffuse = (这里怎么写?)
     reutrn Output;
}

16

主题

68

帖子

72

积分

注册会员

Rank: 2

积分
72
 楼主| 发表于 2008-6-6 10:04:00 | 显示全部楼层

Re:HLSL输出x模型材质颜色问题

汗,没有人知道吗?

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2008-6-9 20:12:00 | 显示全部楼层

Re:HLSL输出x模型材质颜色问题

HLSL中定义几个常量,把这些材质数据传给常量不就行了吗?在PS里面直接返回常量的值
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 08:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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