摘要: 深入理解Direct3D9深入理解D3D9对图形程序员来说意义重大,我把以前的一些学习笔记都汇总起来,希望对朋友们有些所帮助,因为是零散笔记,思路很杂,还请包涵。其实只要你能完美理解D3DLOCK、D3DUSAGE、D3DPOOL、LOST DEVICE、QUERY、Present()、BeginScene()、EndScene()等概念,就算是理解D3D9了, 不知道大家有没有同感。有如下几个问题,如果你能圆满回答就算过关:)。问题1、 D3DPOOL_DEFAULT、D3DPOOL_MANAGED、D3DPOOL_SYSTEMMEM和D3DPOOL_SCRATCH到底有何本质区别?2、 D 阅读全文
posted @ 2011-11-29 22:57 ☆A希亿 阅读(595) 评论(0) 推荐(0) 编辑
摘要: 首先得声明我这篇文章只有很少的篇幅介绍龙书,其实我是想写点东西给那些看完龙书的人。 这是我接触3D图形编程的第一本书,接触3d图形编程前,我看的是《Windows 游戏编程大师技巧》,只看了前几章,当时我急着想去学3D的酷玩意儿,立刻就没耐心看GDI,DirectDraw。转投Direct3D门下,入门书当然是这本龙书了。对我来说龙书最棒的地方在于,它除了开始的数学基础章节外,每一章都能详细地引导读者去实现一个简单的3D特性,从画三角形到摄像机,到简单的粒子系统,地形,甚至到shader。Luna无疑是睿智而狡猾的,他知道初学者往往耐心不够,所以他总是适时地丢出个胡萝卜,让读者保持着继续的动力 阅读全文
posted @ 2011-11-29 17:48 ☆A希亿 阅读(905) 评论(1) 推荐(0) 编辑
摘要: Alpha测试可控制Direct3D程序是否绘制当前像素(根据是否满足Alpha测试条件),图形程序应用Alpha测试可以有效地屏蔽某些像素颜色。与Alpha混合相比,Alpha测试不能将绘制像素颜色与颜色缓冲区像素混合,像素要么完全不透明,要么完全透明。由于无须进行颜色缓冲区的读操作,因此Alpha测试在速度上要优于Alpha混合。 Alpha测试通过渲染状态D3DRS_ALPHATSTEABLE设置,下列代码激活Direct3D的Alpha测试状态: // g_pd3dDevice为有效的Direct3D设备 g_pd3dDevice->SetRenderState( D3DRS_A 阅读全文
posted @ 2011-11-29 11:30 ☆A希亿 阅读(2666) 评论(0) 推荐(0) 编辑
摘要: [翻译]DirectX 状态状态Direct3D设备使用状态来配置所有的管道处理。采样器状态通过例如定义纹理寻址方式(texture addressing)和过滤模式控制纹理采样器设置。纹理状态设置用于控制纹理如何被组合以及相互之间如何混合的多重纹理混合器。渲染状态控制大多数管道状态。状态块是存储和恢复状态的便利机制。状态块保存和恢复状态状态块是一组设备状态。设备状态由渲染状态,定点状态,像素状态,或上述的所有状态组成。状态块包含设备当前状态的快照,或你可以创建状态块来记录每一个应用程序造成的状态改变。创建状态块选择你想获取的状态类型,比功能照下面的方法创建状态块:IDirect3DState 阅读全文
posted @ 2011-11-29 11:26 ☆A希亿 阅读(1063) 评论(0) 推荐(0) 编辑