游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2723|回复: 8

D3D,Material,Light,颜色不同的茶壶???

[复制链接]

11

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
发表于 2004-12-23 22:03:00 | 显示全部楼层 |阅读模式
这是结果:
sf_2004122322340.gif

11

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
 楼主| 发表于 2004-12-23 22:04:00 | 显示全部楼层

Re: D3D,Material,Light,颜色不同的茶壶???

而,我想要得到的是:
请问可能有哪些原因导致错误呢?
sf_2004122322432.gif

1

主题

130

帖子

135

积分

注册会员

Rank: 2

积分
135
发表于 2004-12-23 22:33:00 | 显示全部楼层

Re:D3D,Material,Light,颜色不同的茶壶???

Material的值是否设对?是用的fixpipleline还是shader?

1

主题

130

帖子

135

积分

注册会员

Rank: 2

积分
135
发表于 2004-12-23 22:36:00 | 显示全部楼层

Re:D3D,Material,Light,颜色不同的茶壶???

fixpipel写成fixpiple....大意了,大意了

11

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
 楼主| 发表于 2004-12-26 01:20:00 | 显示全部楼层

Re:D3D,Material,Light,颜色不同的茶壶???

fixpipleline还是shader

怎么设置呢?

50

主题

992

帖子

1012

积分

金牌会员

Rank: 6Rank: 6

积分
1012
发表于 2004-12-26 02:32:00 | 显示全部楼层

Re:D3D,Material,Light,颜色不同的茶壶???

看见你的壶下面有点颜色了,是不是反射光太强?

11

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
 楼主| 发表于 2004-12-26 11:34:00 | 显示全部楼层

Re:D3D,Material,Light,颜色不同的茶壶???

灯光部分:
ZeroMemory(&d3dLight, sizeof(D3DLIGHT8));
d3dLight.Type = D3DLIGHT_POINT;
d3dLight.Diffuse.r = 0.8f;
d3dLight.Diffuse.g = 0.8f;
d3dLight.Diffuse.b = 0.8f;
d3dLight.Ambient.r = 0.0f;
d3dLight.Ambient.g = 0.0f;
d3dLight.Ambient.b = 0.0f;

d3dLight.Specular.r = 0.0f;
d3dLight.Specular.g = 0.0f;
d3dLight.Specular.b = 0.0f;

d3dLight.Position.x = 0.0f;
d3dLight.Position.y = 100.0f;
d3dLight.Position.z = -100.0f;

d3dLight.Attenuation0 = 1.0f;
d3dLight.Attenuation1 = 0.0f;
d3dLight.Attenuation2 = 0.0f;
d3dLight.Range = 500.0f;

//Assign the point light to our device in poisition (index) 0
g_pD3DDevice->SetLight(0, &d3dLight);
g_pD3DDevice->LightEnable(0, TRUE);
g_pD3DDevice->SetRenderState(D3DRS_LIGHTING, TRUE);

g_pD3DDevice->SetRenderState(D3DRS_AMBIENT, D3DCOLOR_XRGB(200, 200, 200));
D3DMCS_MATERIAL);


材质部分:
diffuseColor = {0.8941, 0.8392, 0.6}

ambientIntensity(0.2f);
emissiveColor(0.0f,0.0f,0.0f);
shininess(0.2f);
specularColor(0.0f,0.0f,0.0f);
transparency(0.0f);

float alpha = 1.0 - transparency->getValue();
Ambient.r = ambientIntensity->getValue()*(*diffuseColor)[0];
Ambient.g = ambientIntensity->getValue()*(*diffuseColor)[1];
Ambient.b = ambientIntensity->getValue()*(*diffuseColor)[2];
Ambient.a = alpha;

Diffuse.r = (*diffuseColor)[0];
Diffuse.g = (*diffuseColor)[1];
Diffuse.b = (*diffuseColor)[2];
Diffuse.a = alpha;

Emissive.r = (*emissiveColor)[0];
Emissive.g = (*emissiveColor)[1];
Emissive.b = (*emissiveColor)[2];
Emissive.a = alpha;

Specular.r = (*specularColor)[0];
Specular.g = (*specularColor)[1];
Specular.b = (*specularColor)[2];
Specular.a = alpha;
Power = shininess->getValue();


是不是材质部分哟问题?

1

主题

130

帖子

135

积分

注册会员

Rank: 2

积分
135
发表于 2004-12-26 14:54:00 | 显示全部楼层

Re:D3D,Material,Light,颜色不同的茶壶???

pd3dDevice->SetMaterial();
有没有调用这个???

11

主题

20

帖子

20

积分

注册会员

Rank: 2

积分
20
 楼主| 发表于 2004-12-26 15:33:00 | 显示全部楼层

Re:D3D,Material,Light,颜色不同的茶壶???

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-23 20:54

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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