WhyDX9:翻写D3D红龙书中的程序

之前写过一套学习OpenGL的框架:WhyGL,即然有了GL那也应该再写个学习D3D的框架:WhyDX9.两个程序的架构相同,然后这个程序是将D3D红龙那本书的DEMO翻写了一遍.先将可执行程序发一下,代码等整理后再发.

使用说明:

WhyDX9演示程序平台.exe
WhyDX9.exe
都可以运行程序,不同之处在于,一个是基本的Windows窗体程序,一个是MFC的单文档界面程序.

主UI界面上,鼠标点击可以选择要运行的DEMO
键盘的上下键也可以选择DEMO,PageUp和PageDown用于翻页,回车键用于启动选中的DEMO

F11键用于全屏切换,
ESC用于退出当前DEMO及退出全屏
每个DEMO都会将提示文字信息显示在界面上,H键可以隐藏文字.

下载地址:

http://files.cnblogs.com/WhyEngine/WhyDX9.zip

[RedDragon]
CRedDragon01
= Press any key to change background color


CRedDragon02 = Draw Rotating Cube And Grid


CRedDragon03 = Draw 5 ID3DXMesh


CRedDragon04 = Draw Rotating Teapot


CRedDragon05 = Draw One Triangle


CRedDragon06 = Draw Two Color Triangles


CRedDragon07 = Directional Light


CRedDragon08 = Light Pyramid


CRedDragon09 = Spot Light


CRedDragon10 = Point Light


CRedDragon11 = Texture Address Modes


CRedDragon12 = Texture Cube


CRedDragon13 = Texture Quad


CRedDragon14 = Texture Alpha


CRedDragon15 = Material Alpha


CRedDragon16 = Demonstrates mirrors with
stencils


CRedDragon17 = Demonstrates shadows with
stencils


CRedDragon18 = Demonstrates mirrors and shadows with
stencils


CRedDragon19 = Render text with the ID3DXFont
interface


CRedDragon20 = Render text with the CD3DFont
class


CRedDragon21 = Create and render 3D Text using
D3DXCreateText


CRedDragon22 = Create an empty ID3DXMesh object with
D3DXCreateMeshFVF and fill it


CRedDragon23 = Demonstrates how to load and render an
XFile


CRedDragon24 = Demonstrates how to use the progressive
mesh interface (ID3DXPMesh)


CRedDragon25 = Demonstrates how to use
D3DXComputeBoundingSphere and D3DXComputeBoundingBox


CRedDragon26 = Demonstrates using the Camera
class


CRedDragon27 = Renders a terrain and allows you to walk
around it


CRedDragon28 = Demonstrates the PSystem::Snow
system


CRedDragon29 = Demonstrates the PSystem::Firework
system


CRedDragon30 = Demonstrates the PSystem::ParticleGun
system


CRedDragon31 = Demonstrates picking


CRedDragon32 = Transforming by the view project
matrices and setting the vertex color using a vertex shader


CRedDragon33 = Demonstrates diffuse lighting using a
vertex shader


CRedDragon34 = Demonstrates toon rendering using a
vertex shader


CRedDragon35 = Demonstrates toon rendering with
silhouette edges outlined using a vertex shader


CRedDragon36 = Demonstrates multi-texturing using a
pixel shader


CRedDragon37 = Demonstrates using an effect file to
light and texture a 3D model


CRedDragon38 = Demonstrates fog using an effect
file


CRedDragon39 = Demonstrates toon rendering using a
vertex shader in an effect file

[Flying]
CFlyingHelper
= Flying Helper: Tell you how to create a demo


CFlying01 = Test YicPrimitive2DRender and draw some 2D
graph

时间: 2024-10-06 05:05:40

WhyDX9:翻写D3D红龙书中的程序的相关文章

《九败一胜:美团创始人王兴创业十年》可以通过此书了解王兴和美团的一些事实。书中的概括评论部分我认为可以忽略 三星推荐

作者专门给企业和企业家写传,书中的内容还需要读者过滤.作者试图总结王兴的成功经验和王兴的优点,个人感觉这不是这本书最重要的,也不是作者擅长的.我最感兴趣的还是王兴和美团的历史和经验. 王兴在十年前创业初期做过十多个小项目,都是自己想出来的,都没做下去.后来做的主要是从美国复制:校内copy facebook(甚至copy了页面风格),饭否复制twitter,美团复制groupon.个人看法王兴最大的优势是多次的失败经验. 后面一半讲美团的发展历程.作者还跟着一些销售去签单子体验美团的流程.我本来

向经典致敬,WHY翻写3D图形程序 [开源]

个人认为学习3D图形程序开发,有两套经典教程.D3D的<D3D游戏开发编程基础>也就是红龙那本书.OpenGL的NEHE教程.为向经典致敬,将我之前翻写他们的程序开源. 我所做的工作是将其所有的DEMO集成到一个项目中.所有的DEMO使用同一个渲染设备.这样可以在一个进程中自由地切换DEMO.写这套东西最大的麻烦是,每一个DEMO对渲染设备状态做出的改变,在其退出时需要恢复回去.这看上去很容易,但当出现问题时查起来却很麻烦,因为教程中的DEMO实在是太多了.最常见的问题是渲染效果不对了,这在搞

数据科学实战手册(R+Python)书中引用资料网址

本文会持续将<数据科学实战手册(R+Python)>一书中的附带参考资料网址手打出来, 方便访问. 由于书中的参考资料网址太多, 这个文档将可能花费一段时间才能完成. 第一章 P7  Rstdio (http://www.rstdio.com/) 参考Gettinng Started with R文章: http://support.rstdio.com/hc/en-us/articles/201141096-Getting-Started-With-R 访问RStdio的主页: http:/

Node.js继承中的静态类对象(《node.js开发实战详解》书中一些错误的改正)

今天气真好,最近挂掉一些面试之后心情略失落. 神马都是浮云,要永远做好世界第二. 不多提了,你问我心态为啥变好了.-------都是情怀,,. 嗯啊,最近在研究node. 别人问?你这水平还node... 哈哈哈,好伤心.... 不多提了,言归正传. 神马模块化神马的先就不多讲了,就一个module.export和export区别,后者对象的属性属于前者,逆命题不成立. 还有util.inherits(A,B)这个API注意一下A只会继承B的原型方法,原型以外的不会继承.不是说原型中数据是共享的

《Unity3D 实战核心技术详解》书中关于矩阵的错误

最近一直在学习实时渲染,不免要接触线性代数.而渲染中,一定会用到矩阵,当我再次去复习我之前看的书时,发现<Unity3D 实战核心技术详解>关于矩阵就有几处错误 ,特标注出来. 书的第一章<3D数学与Unity>,1.3.2讲矩阵缩放.1.3.3讲矩阵的旋转.缩放是一个矩阵,后面旋转针对绕三个不同的轴的旋转矩阵(x.y.z),总共4个矩阵,其中3个是错误的,只有一个绕y轴旋转是正确的.我不确定是印刷问题,还是作者本身对矩阵了解和掌握的就不深入,但出现这样的低级错误实属不该. 我直接

经历一次方知书中千百蕴意 ——读《人月神话》有感

"读万卷书,不如行万里路",每一本书都凝结了作者或者前人的心血与智慧的结晶,当我们作为一名后辈去欣赏与学习的时候,我们是否能真正的体会到前辈在当时的那种心情与想法?我们是否可以真正的理解书中的每一个字与词语所构成的含义?我们从书中收获的东西是否是作者希望我们学到的(不是捡了芝麻丢了西瓜)?在看过每一句话后,也许会明白,也许会记住,但是绝对不会比亲身经历后得到与作者同感的时候记忆深刻,因为这个时候作者已经在心中成为了你的知己,你会在心中记住,这是一个深入灵魂的感触.这次的结对与这本书带来

介绍《First Head Java》一书中提到的学习方法

这两天因为工作需要,要了解Java方面的知识.很久以前学过一点Java的知识,但一直没有使用,所以真的是把Java扔到爪哇国了.找了一本名为<First Head Java>的书来翻,书中"Intro"部分关于学习方法的内容吸引了我,感觉挺有意思的,所以摘录于此,大家共享之. 为了保证内容的原汁原味,就不翻译成汉语了,直接贴上英语原文.这里向该书作者Kathy Sierra与Bert Bates(注意,不是那位过逝的电影明星)致谢! 1. Slow down. The mo

Egret入门学习日记 --- 第二十四篇(书中 9.12~9.15 节 内容)

第二十四篇(书中 9.12~9.15 节 内容) 开始 9.12节 内容. 重点: 1.TextInput的使用,以及如何设置加密属性. 操作: 1.TextInput的使用,以及如何设置加密属性. 创建exml文件,拖入组件,设置好id. 这是显示密码星号处理的属性. 创建绑定类. 实例化,并运行. 但是焦点在密码输入框时,密码是显示的. 暂时不知道怎么设置 “焦点在密码框上时,还是显示为 * 号” 的方法. 至此,9.12节 内容结束. 开始 9.13节 . 这个,和TextInput的使用

Egret入门学习日记 --- 第三十六篇(书中 10.7 ~ 10.8 节 内容)

第三十六篇(书中 10.7 ~ 10.8 节 内容) 开始 书中 10.7 节内容. 书中 10.7 节内容结束. 书中重点: 1.导出素材. 2.配置粒子库. 3.播放动画. 开始操作: 1.导出素材. 我设置好了雪花的效果. 接着是导出. 这是导出后的资源文件. 导入Egret的预加载资源组中. 2.配置粒子库. 下载好官方的粒子库. https://github.com/egret-labs/egret-game-library 拷贝粒子库到项目外,记住 项目文件夹外! 配置好 egret