代码改变世界

随笔档案-2008年07月

Direct 3D学习笔记(四)——纹理映射

2008-07-30 13:47 by libiver, 375 阅读, 收藏,
摘要: Direct 3D学习笔记(四)——纹理映射为了使三维物体的表面看起来更真实,在Direct 3D中提供了在物体表面绘制纹理的功能。在Direct 3D中提供了总共8层纹理贴图,从0到7,纹理贴图是一张二维图片,也是以COM形式存在,比如常见的.jpg、.bmp和tga等位图文件都可以作为纹理贴图。正是因为它是一张二维的图片,故在将纹理贴图映射到三维物体表面的时候,需要有个纹理坐标。在设置纹理坐标的时候,要区分纹理的实际坐标和相对坐标。一般情况下,所以的纹理元素相对坐标的地址都在[0.0,1.0]这个范围内,注意可以通过设置地址范围不在这个二维区间来获得特殊的效果。在下图中,正在使用的纹理.. 阅读全文

Direct 3D学习笔记(三)——光照与材质

2008-07-28 17:52 by libiver, 312 阅读, 收藏,
摘要: Direct 3D学习笔记(三)——光照与材质现实世界中物体的颜色是一个复杂的系统,物体在不同的光照下,可能呈现在我们面前的就是不同的颜色。根据物理中的光学知识,物体在各种环境光照下,根据物体自身特性,吸收其中一些光线(其实吸收的是光线的能量),而将自己不能吸收的光线反射回去,当我们的眼睛捕捉到这些被反射的光线后,就可以感觉到物体的外观形状和物体表面的色泽。在计算机系统中为了表示颜色,通常是由RGB三种颜色来混合得到不同的颜色值,RGB的位数越大表示的颜色数越多,当然这知识理论值,并且当达到了一定的极限后,人眼也无法分辨,就没有意义了。由于颜色是由波长决定的,所以可以将任一种颜色表示为:λ . 阅读全文

Direct3D学习笔记(二)——顶点坐标变换

2008-07-23 14:24 by libiver, 1060 阅读, 收藏,
摘要: Direct3D学习笔记(二)——顶点坐标变换在Direct3D中,一个三维物体是被分成许许多多的三角形面来表示,而且是需要使用三维坐标来描述,但实际上显示器是一个二维表面,所以要想在二维显示器上显示三维物体就必须先将空间物体的三维坐标转换为二维坐标。在Direct3D中有四种坐标,分别为1、 世界坐标系三维物体被划分为众多的三角形面表示后,物体表面的图行方位可以通过三角形面的顶点来确定,而为了从数值上定量三维图形的方位数据,需要引入一个世界坐标系(Direct3D中使用的是笛卡尔左手坐标系),这样就可以准确地用一个坐标(x,y,z)来定位,以实现图形到数据的转换。世界坐标系是Direct3. 阅读全文

DirectX 3D学习笔记(一)

2008-07-21 14:11 by libiver, 312 阅读, 收藏,
摘要: DirectX 3D学习笔记(一)Ⅰ、渲染状态设备的渲染状态控制Direct3D设备的光栅化组件的行为。通过改变光栅渲染状态属性,可以设置使用何种方式来进行渲染着色,以及如何进行雾化等。在Direct3D中我们可以通过IDirect3DDevice9::SetRenderState()函数来设置渲染状态。HRESULT SetRenderState(D3DRENDERSTATETYPE State, DWORD Value); 通过枚举函数SetRenderState中的第一个参数D3DRENDERSTATETYPE,可以得到所有可能的渲染状态。 ① 着色模式Direct3D中的物体表面是有很 阅读全文

Thinking in C++读书笔记(一)

2008-07-17 14:42 by libiver, 182 阅读, 收藏,
摘要: 早就想有时间能静下来好好拜读下Bruce Eckel的Thinking in C++这本大作,电子版的书在我原来机子的硬盘上躺了快一个春秋,在毕业的时候居然连灰尘都没来得及给她扫扫就把她陪嫁送人了。今天在去CSDN上逛的时候,突然发现那个熟悉的字眼出现在了我的视线中,想想这段时间估计不忙,所以就重新把她Down下来,也好陪陪我,希望能让我找到思念之外的一份快乐。解压后就迫不及待地翻阅第一章——对象的演进(Introduction to Objects),在这里重温着我对Class、Objects、OOP(Object-Oriented Programming)的认识,也启发着我,加深那些概念的 阅读全文

基本的Direct3D程序结构

2008-07-04 14:48 by libiver, 246 阅读, 收藏,
摘要: 近来开始学习Direct3D编程,希望像当时学习DirectShow一样,在这里记下我学习的过程。下面是我写的一个基本的Direct3D的框架程序,适合入门。//// D3DBasicStruct.cpp//// Written by Leezhm, 4th July, 2008// Contact : Leezhm@126.com#pragma once#include <windows.h>#include <tchar.h>#include <strsafe.h>#include <d3d9.h>#include <d3dx9.h&g 阅读全文

关于WM_PAINT消息

2008-07-02 19:05 by libiver, 195 阅读, 收藏,
摘要: 关于WM_PAINT消息在WindowsAPI编程中,WM_PAINT是Windows窗口的一个重要消息,应用程序就是通过响应这个消息来完成窗口的绘制。TheWM_PAINTmessageisgeneratedbythesystemandshouldnotbesentbyanapplication.Thesystemsendsthismessagewhentherearenoothermessagesintheapplication'smessage queue注意:WM_PAINT消息是由系统产生,非要等应用程序的消息队列为空时才发送WM_PAINT消息。其实系统会在很多的不同的机制 阅读全文