现在的位置: 首页 > 综合 > 正文

dx sample学习(更新中)

2018年05月03日 ⁄ 综合 ⁄ 共 1908字 ⁄ 字号 评论关闭
文章目录

dx9相关有45个项目,可以从容易到困难学习,下面是我的学习总结,比较简单的就放在这篇里面,复杂的另起一篇,点击标题进入。

初级

Tutorial1-6

这个系列教材包括了dx的基础使用方法,对于除这6个教材以外的其它例子,都使用了一个框架DXUT

DXUT这个框架用起来很方便,学习dx某方面知识可以暂时不看DXUT框架的细节

EmptyProject

基本是个空架子,在D3DDeviceAcceptable中判断texture是否支持post pixel blending

PIXGameDebugging

http://blog.csdn.net/buck84/article/details/9101541

BasicHLSL

顾名思义,简单的HLSL使用,场景中包含了tiny和三个摄像机,hlsl计算的时候默认bAnimate=true,计算定点的时候随着时间的改变,定点位置沿着定点法向偏移

SimpleSample

只比EmptyProject复杂一点,包括界面显示和系统设置

Text3D

说明了3D程序里面文字的实现,文档中说文字渲染到bitmap,然后采用这个bitmap创建texture,这个是ID3DXFont::DrawText实现的

HLSLwithoutEffects

不适用effect,只使用hlsl要麻烦一点,使用Effect只需要D3DXCreateEffectFromFile,Set***,Begin BeginPass draw** EndPass End
只使用vertexshader需要D3DXCompileShaderFromFile CreateVertexShader,如果有很多歌vertexshader和pixelshader,管理起来就麻烦了

CompiledEffect

这个例子说的是使用预先编译好shader,节省程序启动时间,

CustomUI

界面

Pick

拾取算法

首先计算拾取射线在世界坐标中信息(顶点与方向)
然后计算射线与mesh相交情况,示例程序中采用了2种算法:
1)采用dx提供的函数D3DXIntersect
2)自己写算法

中级

EffectParam

这个例子讲了effect的两种技术:sharing effect parameters和use parameter blocks to manage effect parameters。
sharing effect parameters采用effect pool来共享参数
use parameter blocks to manage effect parameters将多个参数合并,通过parameter block实现

EnhancedMesh

将mesh进行扩展,生成更精细的mesh

OptimizedMesh

优化mesh

StateManager

dx中state的管理

AntiAlias

借助学习这个例子,研究了一下游戏中坐标变换的详细原理,原理在http://blog.csdn.net/buck84/article/details/9203863

世界变换worldTransform和投影变化projectMatrix很普通,关键是viewTransform

三角形原始数据信息:

(0,1)1     (1,1)0

(0,0)2

渲染三角形的时候希望x轴朝右为正,y轴朝下为正,摄像机相当于:

pos:(w/2, h/2, z)其中z根据需求计算得出(h/2/tan(fovy/2))

dir:(0, 0, -1)

up:(0, -1, 0)

带入公式可以得出viewMatrix:

1

          -1

                  -1

-w/2  h/2    z      1

Blobs

http://blog.csdn.net/buck84/article/details/9209587

MeshFromOBJ

这个例子说明从其它模型文件(.x以外的文件)导入数据并使用ID3DXMesh

PIX Plugin Sample

预留

HDRCubeMap

这个例子比较简单,包括2个内容:CubeMap和HDR。

CubeMap先生成一个CubeMap,然后将其作用到物体上实现各种特殊效果:如反射。

HDR则采用一个D3DFMT_A16B16G16R16F格式的纹理作为CubeMap的RenderTarget,保存超过1的结果,增强最终渲染场景的真实感

ParallaxOcclusionMapping

ConfigSystem

HDRPipeline

预留

ShadowMap

ShadowVolume

高级

localDeformablePRT

抱歉!评论已关闭.