刚看完了DXUT,拿来练练手
这个框架却实方便啊,终于不用写那些令人恶心的API函数了
光影贴图,说白了就是在纹理上表现出来光影效果,并不是实时计算的,所以适用于固定的场影平面,如地面,墙壁等
原理嘛,就是多层纹理的叠加,除了模型本身的纹理外,还需要光纹理
效果如图
关键代码如下:
pd3dDevice->SetTexture(0,pTexture0);/**////在0号纹理层固定纹理(壁面)pd3dDevice->SetTexture(1,pTexture1);/**////在1号纹理层固定纹理(光影贴图)
pd3dDevice->SetTextureStageState(0,D3DTSS_TEXCOORDINDEX,0);/**////0号纹理:使用0号纹理索引pd3dDevice->SetTextureStageState(1,D3DTSS_TEXCOORDINDEX,0);/**////1号纹理:使用0号纹理索引pd3dDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);/**////0号纹理层的放大滤镜pd3dDevice->SetSamplerState(1,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);/**////1号纹理层的放大滤镜pd3dDevice->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_SELECTARG1);
pd3dDevice->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);
pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAOP,D3DTOP_SELECTARG1);
pd3dDevice->SetTextureStageState(0,D3DTSS_ALPHAARG1,D3DTA_TEXTURE);
pd3dDevice->SetTextureStageState(1,D3DTSS_COLOROP,D3DTOP_MODULATE);/**////运用MODULATE运算进行颜色混合pd3dDevice->SetTextureStageState(1,D3DTSS_COLORARG1,D3DTA_TEXTURE);
pd3dDevice->SetTextureStageState(1,D3DTSS_COLORARG2,D3DTA_CURRENT);
pd3dDevice->SetTextureStageState(1,D3DTSS_ALPHAOP,D3DTOP_DISABLE);
pd3dDevice->SetTextureStageState(2,D3DTSS_COLOROP,D3DTOP_DISABLE);
pd3dDevice->SetTextureStageState(2,D3DTSS_ALPHAOP,D3DTOP_DISABLE);
分享到:
相关推荐
此为direct3D的贴图,原来是可以出来图像,但是颜色不正确,这个是改好的代码,其实就是贴图时的数据格式指定的不对造成的。大家可以下载看一看,少走些弯路 对应的帖子:...
direct3d的贴图代码,使用directx9.0,所以需要安装directx SDK9.0,在exe目录中包含了要读取的图片文件和需要的效果图以及目前的效果图 由于图片的大小已经固定,所以对direct3d初始化时使用了固定的大小,目前...
Direct3D实现纹理贴图 有代码和注释 适合初学者
Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D教程Direct3D...
本书是基于DirectX9.0编写的,是介绍Direct3D技术的入门教程。它详细 介绍了Direct3D的背景、基本知识... 本书适用于略有DirectX基础的C/C++程序员学习Direct3D游戏开发,也适用于具有Direct3D开发经验的程序员参考。
Direct3D教程c#版Direct3D教程c#版Direct3D教程c#版Direct3D教程c#版Direct3D教程c#版Direct3D教程c#版Direct3D教程c#版Direct3D教程c#版Direct3D教程c#版Direct3D教程c#版Direct3D教程c#版Direct3D教程c#版Direct3D...
《Direct3D技术内幕》一步一步地带领读 者开发3D游戏,因此对于有意学习这项令人激动的技术的游戏编程人员来说,是 非常理想的教材。它也适合想发现将实时3D用户界面添加至基于Windows应用程序 的方法的任何程序员。...
是一个关于Directx的使用及基础知识
Direct 3D 游戏编程入门教程(第2版)基于DirectX 9.0,是介绍Direct3D技术...Direct 3D 游戏编程入门教程(第2版)适用于略有DirectX基础的C/C++程序员学习Direct3D游戏开发,也适用于具有Direct3D开发经验的程序员参考。
direct3d立方体多个贴图及旋转。 已经通过验证,移植到MFC或WIN32中可用. 对于理解directx贴图及建立立方体有用。
Direct3D 的DELPHI 实现.Microsoft Direct3D Tutorials 的DELPHI 实现.包括代码和实例
用VS2010实现太阳、月亮、地球运动。
第2章 Direct3D程序设计基础 CreateDevice 演示Direct3D程序的基本框架,以及如何创建Direct3D对象和Direct3D设备对象。
基于mfc的direct3d程序基于mfc的direct3d程序基于mfc的direct3d程序
Beginning Direct3D Game Programming Direct3D技术内幕
Direct3D游戏 Direct3D游戏开发 Direct3D游戏开发 Direct3D游戏开发
c# direct3D教程
《Direct3D 12 尝鲜: 基本呈现》附带资源