游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: cyuyan

D3D中的光照效果和纹理效果???

[复制链接]

7

主题

30

帖子

46

积分

注册会员

Rank: 2

积分
46
QQ
 楼主| 发表于 2004-7-22 11:54:00 | 显示全部楼层

Re:D3D中的光照效果和纹理效果???

试了一下,的确FVF的顺序对程序有影响。
如果结构定义成如下:
struct CUSTOMVERTEX{
D3DXVECTOR3 position; // 顶点坐标
D3DCOLOR color; // 顶点颜色
FLOAT tu, tv; // 贴图坐标
D3DXVECTOR3 normal; // 法线(用于光照)
};
帖纹理时,会出现纹理混乱的现象,总之帖到表面的纹理不是你想看到的纹理。
而如果定义成:
struct CUSTOMVERTEX
{
D3DXVECTOR3 position; // 顶点坐标
D3DXVECTOR3 normal; // 法线(用于光照)
D3DCOLOR color; // 顶点颜色
FLOAT tu, tv; // 贴图坐标
};
帖纹理不正确的现象就解决了。

但是光照效果的问题依然没有搞定,现象就是无论我是否设置光照,程序运行的效果都一样。即我在渲染函数里把SetLight();函数屏闭和不屏闭,程序运行效果都相同。

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2004-7-22 13:46:00 | 显示全部楼层

Re:D3D中的光照效果和纹理效果???

struct CUSTOMVERTEX
{
D3DXVECTOR3 position; // 顶点坐标
D3DXVECTOR3 normal; // 法线(用于光照)
D3DCOLOR color; // 顶点颜色
FLOAT tu, tv; // 贴图坐标
};
对应的FVF是D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_DIFFUSE|D3DFVF_TEX1

struct CUSTOMVERTEX
{
D3DXVECTOR3 position; // 顶点坐标
D3DCOLOR color; // 顶点颜色
FLOAT tu, tv; // 贴图坐标
D3DXVECTOR3 normal; // 法线(用于光照)
};
对应的FVF是D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1|D3DFVF_TEXCOORDSIZE2(0)|D3DFVF_NORMAL
你设置对了么?

7

主题

30

帖子

46

积分

注册会员

Rank: 2

积分
46
QQ
 楼主| 发表于 2004-7-22 14:30:00 | 显示全部楼层

Re:D3D中的光照效果和纹理效果???

FVF我是写对了的。
我现在发现了造成问题的原因,但是不明道理。这个问题的原因在这个地方:
D3DXCreateTextureFromFile(g_pd3dDevice,"C:\\红.bmp",&g_pTexture);
g_pd3dDevice->SetTexture(0, g_pTexture );
g_pd3dDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);//如果没有此语句就一切OK,但不太清楚此语句具体含义,请哪位朋友介绍一下此语句?

我的MSN:gsq547@hotmail.com 或者我的QQ:10589119
希望能和大家多探讨一下D3D方面的知识。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-4 00:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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