D3D向量运算

 

向量的定义:

是指空间里的一段有向线段.

 

向量相等的条件:

如果长度相等和方向相同, 就可判定向量相等.

 

向量的表示:

一般情况下,向量由空间中的2点表示. 但是我们在处理和表达的简单, 我们采用一点表示. 下面列出为什么我们能用一点表示向量的原因. 根据向量相等的原理, 就可以把任何向量通过移动, 将向量的起点设置到坐标原点. 因此可以用一点去表示向量.

 

向量的规范化或者规一… 更多... “D3D向量运算”

D3D深度缓冲

因为当时没有理解这个东西, 导致自己写的一个小的测试程序无论如何不能按照自己的设想的方式工作.

 

1. 预期目标:

 

在世界空间中放置一个圆面, 一个正方形面, 还有一个三棱锥体. 让这三个模型围绕世界坐标系Y轴转动.

 

2. 实际结果:

 

三个模型都在对应的位置显示出来了, 并且都在围绕围绕坐标抽转动. 但是有个小问题, 按照预期, 转到一定角度, 正方形面有一部分就被圆面挡住了, 但实

更多... “D3D深度缓冲”

3D游戏开发(一)

原文作者:Jake Simpson
译者: 向海

第1部分: 游戏引擎介绍, 渲染和构造3D世界

介绍
   自Doom游戏时代以来我们已经走了很远。 DOOM不只是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 游戏 "引擎"。 这种模块化,可伸缩和扩展的设计观念可以让游戏玩家和程序设计者深入到游戏核心,用新的模型,场景和声音创造新的游戏, 或向已有的游戏素材中添加新的东西。大量的新游戏根据已经存在的
更多... “3D游戏开发(一)”

Direct3D系列 – 1

向量的定义:

是指空间里的一段有向线段.

 

向量相等的条件:

如果长度相等和方向相同, 就可判定向量相等.

 

向量的表示:

一般情况下,向量由空间中的2点表示. 但是我们在处理和表达的简单, 我们采用一点表示. 下面列出为什么我们能用一点表示向量的原因. 根据向量相等的原理, 就可以把任何向量通过移动, 将向量的起点设置到坐标原点. 因此可以用一点去表示向量.

 

向量的规范化或者规一化:

是指调整

更多... “Direct3D系列 – 1”

HLSL内置对象

在用HLSL写顶点渲染器,象素渲染器和效果器时,经常用到一些HLSL的内置对象, 如 ZEnable, CullMode, Lightling等等.但是从书上是找不到全部的内置对象,也许有一天你发现要用到的一个渲染参数你想在效果器中通过设置内置对象完成, 但是你发现不知道这个对象有没有被定义或者不知道变量的名字是什么. 在网上找也找不到. 怎么办, 告诉你一个方法; 打开dx sdk文档, 转到search tab页,输… 更多... “HLSL内置对象”

vs2003的debug菜单没有direct3d选项

这些日子学习d3d到了可编程的渲染管线部分. 顶点或者象素渲染代码(用HLSL语言)写在vsh或者psh中, 既然是写的代码, 那么免不了可能出一些问题, 需要调试. 调试这里面的代码可不象调试我们cpp中的代码那么直接. 大概需要做一些设置:

 

1. 设置d3d使用debug版本的运行时库.

2. 调用D3DXCompile…函数编译vsh psh中的代码时, 启用D3DXSHADER_SKIPOPTIMIZ… 更多... “vs2003的debug菜单没有direct3d选项”

渲染管线以及directx的发展过程

 

本文摘抄自网页,以备日后学习之用。
显卡 : 什么是渲染管线 


渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的的并行处理单元。在某种程度上可以把渲染管线比喻为工厂里面常见的各种生产流水线,工厂里的生产流水线是为了提高产品的生产能力和效率,而渲染管线则是提高显卡的工作能力和效率。 
渲染管线的数量一般是以 像素渲染流水线的数量×每管线的纹理单元数量 来表示。例如,GeForce 6800Ultra的渲染
更多... “渲染管线以及directx的发展过程”

D3D 材质和灯光

我们在生活中看到的光有环境光, 漫反射光以及璄面反射光还有物体本身发射的光. 因此我们在定义材质时就要描述对这些光反应.

看看材质结构体的定义:

 

typedef struct _D3DMATERIAL9 {
    D3DCOLORVALUE   Diffuse;        /* Diffuse color RGBA */
    D3DCOLORVALUE   Ambient;        /* Ambient color RGB */
    D3DCO… 更多... “D3D 材质和灯光”

d3d全屏模式

d3d全屏模式

 

通常我们创建的d3d程序时都是非全屏模式, 但是游戏大部分是全屏模式, 怎么创建这两种模式呢?

 

创建的时候有2点不同: 创建窗口, 创建设备.

 

1. 创建普通模式:

 

a. 创建窗口:

    m_hMainWin = CreateWindowW( m_szWinClsName, m_szWinTitle, WS_OVERLAPPEDWIN更多... “d3d全屏模式”