摘要: 该游戏项目一开始先创建名为light.h、material.h的两个文件。light.h头文件用于创建灯源结构,该结构用于创建Direct3D中的灯源对象。以某种方式实现该结构,这样也可将其用于OpenGL或其他渲染系统。光源结构模仿了Direct3D中的D3DLIGHT结构,所以它们是完全兼容的。light.h#ifndef _UGP_LIGHT_H_#define _UGP_LIGHT_H_struct stLight{ stLight() { type = 0; posX = 0, posY = 0, posZ = 0; dirX = 0, dirY... 阅读全文
posted @ 2011-08-21 22:55 小 楼 一 夜 听 春 雨 阅读(453) 评论(0) 推荐(0)
摘要: 在Direct3D中创建光源相对比较简单,因为只是为了使用光源,而不需要知道太多Direct3D内部使用的算法。所以即使对先前光照和阴影的讨论一头雾水,也不用担心。有一些亲自实践的经历之后,读者就可以使用Direct3D中的光照,而不必知道它的工作机理或自己动手计算光照方程。默认情况下,即使没有指定任何光源,Direct3D也会打开硬件光照。到目前为止,都是将其设置为FALSE,那是因为还没有用到光照。在初始化中调用SetRenderState()函数,并将该函数的参数D3DRS_LIGHTING设为FALSE。 为了在Direct3D中创建光源,必须创建一个D3DLIGHT对象。为了方便.. 阅读全文
posted @ 2011-08-21 20:52 小 楼 一 夜 听 春 雨 阅读(1323) 评论(0) 推荐(0)
摘要: #include<d3d9.h>#include<d3dx9.h>#define WINDOW_CLASS "UGPDX"#define WINDOW_NAME "Built-in Direct3D Shapes"#define WINDOW_WIDTH 640#define WINDOW_HEIGHT 480// Function Prototypes...bool InitializeD3D(HWND hWnd, bool fullscreen);bool InitializeObjects();void RenderScen 阅读全文
posted @ 2011-08-21 19:41 小 楼 一 夜 听 春 雨 阅读(3396) 评论(0) 推荐(0)
摘要: 通常在计算机图形学中有三类光源需要考虑,分别是点光源、聚光光源和方向性光源。每类光源分别描述了日常生活中见到的不同类型的光。例如,点光源可以是某个距离上向所有方向发光的任何光源,如灯泡;聚光光源通过圆锥发光,如闪光灯;而方向光则是从特定的方向,但是无法辨别的光源处发光。【注意】 方向光不同于点光和聚光的是,现实世界中并没有这样的光。另一方面,在计算机图形学中,它们确实存在而且可以由数学计算得到。 1. 点光源如本章前面所提到的一样,点光源是一种在某个距离上向所有方向发光的光源。随着光传播一定的距离,它会损失一定的能量而且亮度也会逐渐降低。可以将点光源认为是灯泡、蜡烛,或是在一定距离上可以发光的 阅读全文
posted @ 2011-08-21 19:30 小 楼 一 夜 听 春 雨 阅读(972) 评论(0) 推荐(0)