DirectX3D 纹理贴图

这篇博客介绍了如何在DirectX3D中实现纹理贴图。首先创建了一个立方体,然后设置了方向光源,接着加载并应用了纹理。通过D3DXCreateTextureFromFile函数加载名为'crate.jpg'的纹理,并使用线性过滤和各向异性过滤来提高贴图质量。此外,还展示了如何根据用户输入调整视角,以及如何清除和呈现帧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//初始化部分
// 创建一个cube
	g_Box = new Cube(g_Device);

	// 设置方向光源
	D3DLIGHT9 light;
	::ZeroMemory(&light, sizeof(light));
	light.Type      = D3DLIGHT_DIRECTIONAL;
	light.Type      = D3DLIGHT_DIRECTIONAL;
	light.Ambient   = D3DXCOLOR(0.8f, 0.8f, 0.8f, 1.0f);
	light.Diffuse   = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f);
	light.Specular  = D3DXCOLOR(0.2f, 0.2f, 0.2f, 1.0f);
	light.Direction = D3DXVECTOR3(1.0f, -1.0f, 0.0f);
	g_Device->SetLight(0, &light);
	g_Device->LightEnable(0, true);
	
	g_Device->SetRenderState(D3DRS_NORMALIZENORMALS, true);
	g_Device->SetRenderState(D3DRS_SPECULARENABLE, true);

	// 创建一个纹理
	D3DXCreateTextureFromFile(g_Device, "crate.jpg", &g_Tex);
	// 设置纹理过滤器
	//g_Device->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
	//g_Device->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
	//g_Device->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_LINEAR);
	// 高质量贴图,需要硬件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值