3D游戏程序设计基础
正版新书 本店两天左右发货 着急要货的请不要下单
¥
7.8
2.0折
¥
39
全新
库存100件
作者金禾工作室 编
出版社兵器工业出版社
出版时间2006-10
版次1
装帧平装
上书时间2024-11-14
商品详情
- 品相描述:全新
图书标准信息
-
作者
金禾工作室 编
-
出版社
兵器工业出版社
-
出版时间
2006-10
-
版次
1
-
ISBN
9787801727114
-
定价
39.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
388页
-
字数
588千字
- 【内容简介】
-
这是一本讲述利用VisualC++.NET进行3D程序设计的专著。本书讨论如何进行基于DirectX的3D程序开发的基本思维、方法和具体过程。
全书分为10章,内容包括基于DirectX和OpenGL的3D程序,贴图与坐标系,从2D到3D的过渡思维,镜像贴图与坐标变换,3dsmax模型加载与处理——引入光源、透明、反射、阴影等3D场景效果的VC.NET程序实现。
本书完全针对初学者——无须具备程序语言基础,以师徒问答、思维引导方式学用、实践结合,文字轻松、内容浅显并具启发性。注重3D思维方法,适合3D程序设计爱好者、3D游戏开发者。
配套光盘内容为书中部分实例的源代码。
- 【目录】
-
第1章第一个3D程序
1.13D空间初体验
1.1.1视窗
1.1.23D世界的坐标
1.1.3右手坐标系
1.1.4左手坐标系
1.1.5Direct3D和OpenGL
1.1.6采用右手坐标系的优点
1.2如何设定视窗的视野范围
1.2.1默认值
1.2.2系统变量
1.2.3单位的意义
1.2.4决定视窗与Camera的距离
1.2.5决定视窗的大小
1.2.6决定观察的最远距离
1.3创建第一个D3D程序
1.3.1本书使用的软件工具
1.3.2安装软件注意事项
1.3.3开始安装DirectX9
1.3.4以EmptyProject建立D3D程序
1.4D3D基本Framework解说
1.4.1InitApp()
1.4.2IsDeviceAcceptable()
1.4.3ModifyDeviceSettings()
1.4.4OnCreateDevice()
1.4.5OnResetDevice()
1.4.6OnFrameMove()
1.4.7OnFrameRender()
1.4.8OnLostDevice()
1.4.9OnDestroyDevice()
1.5在视窗中加入一个三角形
1.5.1介绍3D中的数据项
1.5.2准备顶点信息
1.5.3设定Material
1.5.4着色状态值的设定
1.5.5将WorldMatrix初始化
1.5.6ViewMatrix的设定
1.5.7ProjectionMatrix的设定
1.5.8建立光源
1.5.9设定CullMode
1.5.10转动三角形
1.5.11画出三角形
1.5.12释放资源
1.6D3D名词解释
1.6.1什么是Device
1.6.2CPU、3D显卡与效能的关系
1.6.3Buffer是一种内存吗
1.6.4VertexBuffer和Buffer有什么不同
1.6.53D中的颜色值——ColorValueRGBA
1.6.6NormalVector与LightVector
1.6.7ColorBuffer是什么样的内存
1.6.8DepthBuffer与ZBuffer
1.6.9FullScreen是全屏幕吗
第2章加上贴图效果
2.1由三角形到正方形
2.1.1正方形的组成
2.1.2介绍IndexBuffer
2.1.3使用IndexBuffer建立正方形
2.2关于材质与贴图
2.2.1什么是贴图
2.2.2认识贴图坐标
2.2.3其他贴图方法
2.3Texture技巧演练
2.3.1建立Texture相关程序代码
2.3.2介绍SetTextureStageState()函数
2.3.3D3D中Color值的运算
2.3.4Filter与贴图的关系
第3章从平面到立体
3.1制作每个面都有贴图的立方体
3.1.1立方体共点时的贴图问题
3.1.2解决问题
3.2打造一个六面不同贴图的立方体
3.2.1准备VertexBuffer
3.2.2填入VertexData
3.2.3准备贴图
第4章贴图效果的进一步介绍
4.1建立一片漂亮的地板
4.1.1建立地板的准备工作
4.1.2着手建立地板的程序代码
4.2试试各种贴图方法
4.2.1Wrap(Repeat)贴图法
4.2.2Clamp贴图法
4.2.3Mirror贴图法
4.3改进贴图品质
4.3.1分辨率不足的问题
4.3.2介绍MipMap贴图取样
4.3.3MipMap与Filter贴图取样的比较
第5章移形换位——坐标变换
5.1空间坐标变换
5.1.13D空间中旋转的基本概念
5.1.2投影的坐标变换(Projection)
5.1.3位移的坐标变换(Translation)
5.1.4旋转的坐标变换(Rotation)
5.1.5矩阵具有结合律
5.1.6WorldMatrix
5.1.7ViewMatrix
5.1.8ProjectionMatrix
5.1.9位移效果的矩阵函数
5.1.10旋转效果的矩阵函数
5.1.11WorldSpace与ObjectSpace
5.1.12矩阵相乘不具备交换律
5.2给地板施定身法
5.2.1找出画地板前的WorldMatrix
5.2.2声明一个单位矩阵指定给地板
5.2.3关闭PUREDEVICE
5.3让Camera自由走动
5.3.1增加Camera移动的按键控制
5.3.2声明变量来储存Camera的位置
5.3.3使用矩阵函数
5.3.4使用MatrixStackforRotatingCube
5.3.5使用MatrixStackforCamera并加上旋转功能
5.3.6如何让Camera绕着自己的坐标系旋转和移动
第6章模型加载介绍
6.1用VertexBuffer建立模型
6.1.1建立墙面的VertexBuffer
6.1.2正式在OnFrameRender()里画出墙面
6.1.3在OnDestroyDevice()里释放资源
6.1.4修改Camera的位置及步伐
6.2使用3dsmax制作含Material的模型
6.2.1在3dsmax中加入转文件程序
6.2.2如何简单制作模型
6.2.3设定模型的Material
6.24将模型Export出去
6.3在场景中加载3dsmax模型
6.3.1把程序与s3d_model.lib做连结
6.3.2在程序中加载含Material的模型
6.4激活Specular效果
6.4.1激活Specular的步骤
6.4.2动手开启Specular的光源设定
6.5使用3dsmax的Texture模型
6.5.1如何在Max中设定模型Texture
6.5.2将含Texture的模型加入场景
第7章激活光源效果
7.1物体的受光原理
7.1.1红花为什么那样红
7.1.2黑色头发会反射黑光吗
7.2为3D世界建立光源
7.2.1光源的种类
7.2.2光源的位置与方向
7.2.3如何激活光源效果
7.2.4在场景中加入PointLight
7.2.5在场景中标记光源的位置
7.2.6在场景中加入SpotLight
7.2.7在场景中标记光源的方向
7.3制作迷人的舞台灯光效果
7.3.1让灯光动起来
7.3.2制作明暗不定的多彩灯光
7.3.3让Cube也动起来吧
7.4顶点数与光源的关系
7.4.1计算顶点的颜色
7.4.2增加顶点数量来强化光源效果
7.4.3动态调整地板顶点数量的小程序
7.4.4动态地调整墙壁的顶点数量
7.4.5增加光源开关的机制
第8章若隐若现的透明效果
8.1为透明作准备
8.1.1更新模型
8.1.2使用Material填入Square的颜色
8.1.3关于ColorOperation的疑惑
8.1.4使用TextureFactor填入Square的颜色
8.1.5让Cube动起来
8.1.6再复制一个Cube
8.2正式进入透明的殿堂
8.2.1透明的定义
8.2.2设定透明的步骤
8.2.3为MaterialSquare透明化
8.2.4为TextureFactorSquare透明化
8.2.5把Cube也一起透明化吧
8.2.6CullFace的设定
第9章绚丽的镜面反射效果
9.1为反射效果做准备
9.1.1更换模型
9.1.2整理OnFrameRender()
9.2反射技巧第一步——地板透明化
9.2.1复习透明的步骤
9.2.2动态控制地板的透明度
9.3反射技巧第二步——画出反射对象
9.3.1认识Scale矩阵
9.3.2利用Scale矩阵做出反射效果
9.3.3改变反射对象的旋转方向
9.3.4画出反射的Cube
9.3.5探讨画出反射Cube失败的原因
9.3.6修正反射部分的光线
9.3.7画出其他反射对象
9.4反射技巧第三步——StencilBuffer
9.4.1请StencilBuffer登场
9.4.2设定StencilBuffer内存
9.4.3ClearStencilBuffer
9.4.4在StencilBuffer里做记号
9.4.5StencilTest
9.4.6将所有地板下的反射对象都藏起来吧
第10章阴影效果
10.1为阴影做准备
10.1.1更换模型
10.1.2阴影的形成过程
10.2为Cube画出阴影
10.2.1设定投影的变换矩阵
10.2.2设定阴影的颜色及透明度
10.2.3画出Cube的阴影
10.3阴影重叠的问题
10.3.1画出其他对象的阴影
10.3.2发现阴影破碎的问题
10.4解决阴影重叠问题
10.4.1向硬件寻找可以使用StencilBuffer功能组合
10.4.2使用StencilBuffer解决阴影破碎问题
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价