随笔分类 -  游戏开发

上一页 1 ··· 3 4 5 6 7 8 9 下一页
D3D类游戏开发技术
摘要:首先去UltraEdit的官网下载支持Lua的Wordfiles文件(这里),是个文本文件(lua.txt)。打开UltraEdit安装目录下的wordfile.txt,把lua.txt文件中的内容拷贝粘贴到wordfile.txt的末尾,存盘,OK,于是UltraEdit语法高亮项多出Lua一项,可以选择使用了。其他语言的语法高亮支持与此类似。 阅读全文
posted @ 2007-10-26 10:10 至尊王者 阅读(2780) 评论(1) 推荐(0)
摘要:环境光的使用比较简单,Direct3D把它作为一个渲染状态,通过调用IDirect3DDevice9::SetRenderState进行设置,对应的状态常数为D3DRS_AMBIENT。 按光源划分,直射光可分为三种: 1)点光源 点光源(Point Light)从一个点向周围均匀地发射光线。点光源有颜色、位置、作用范围,光强随距离而衰减,没有方向。 屏幕剪辑的捕获时间: 2007-6-27, ... 阅读全文
posted @ 2007-10-13 17:15 至尊王者 阅读(661) 评论(0) 推荐(0)
摘要:在Direct3D中,实体模型中的一个点可能被 多个三角形面所共用,如下图,虽然只有4个顶点,却由4个三角形面组成. 屏幕剪辑的捕获时间: 2007-6-27, 9:46 如果把顶点数据按对应图元的格式,直接放进顶点缓存区,该棱锥使用三角形列,4个锥面其需要4*3=12个顶点,也就是有8个顶点是重复的.如果实体比较复杂,重复的顶点会更多,造成资源浪费. 为些Direct3D引入了索引缓存的概念,... 阅读全文
posted @ 2007-10-13 17:14 至尊王者 阅读(1791) 评论(0) 推荐(0)
摘要:1)世界变换 我们在建立三维实体的数学模型时,通常以实体的某一点为坐标原点,比如一个球体,很自然就用球心做原点,这样构成的坐标系称为本地坐标系(Local Coordinates)。实体总是位于某个场景(World Space)中,而场景采用世界坐标系(World Coordinates),如图所示,因此需要把实体的本地坐标变换成世界坐标,这个变换被称为世界变换(World Transformat... 阅读全文
posted @ 2007-10-13 17:14 至尊王者 阅读(2928) 评论(0) 推荐(0)
摘要:在Direct3D中,三角形是构成实体的基本单位,因为一个三角形正好是一个平面,以三角形面为单位进行渲染效率最高。 一个三角形由三个点构成,习惯上把这些点称为顶点(Vertex)。三角形平面有正反面之分,由顶点的排序决定:顶点按顺时针排列的表面是正面,如图。 屏幕剪辑的捕获时间: 2007/6/22, 14:59 其中与三角形平面垂直、且指向正面的矢量称为该平面的法线(Normal)。 在Dir... 阅读全文
posted @ 2007-10-13 17:13 至尊王者 阅读(13437) 评论(1) 推荐(0)
摘要:按坐标轴之间的相互关系划分,三维坐标系可分为左手体系和右手体系,如下图所示。在左手体系中,坐标轴的定义符合法则:左手四个手指的旋转方向从X轴到Y轴,大拇指的指向就是Z轴。右手体系依次类推。Direct3D使用左手坐标系,其中X轴表示左右,Y轴表示上下,Z轴表示远近(深度)。 屏幕剪辑的捕获时间: 2007/6/22, 14:07 取定坐标系后,空间中的任意一点可以用一组坐标值(X,Y,Z)来表示... 阅读全文
posted @ 2007-10-13 17:11 至尊王者 阅读(1066) 评论(0) 推荐(0)
摘要:大家都知道,一个3D 场景中,我们见到的任何光辉灿烂的物体, 都是由一个一个面片组成的。而装载面片位置信息的就是其各个定点的三维坐标。这是用来在模型中存储的,而要把物体显示在屏幕上,还需要将它们转换成显示器上的二维坐标。这就需要对每个点实施一套 3 to 2 的转换公式,在Direct3D中叫做“几何流水线”(Geometry Pipeline)。 每渲染一桢,我们都要用到这条流水线把所有定点的... 阅读全文
posted @ 2007-10-11 08:37 至尊王者 阅读(946) 评论(0) 推荐(0)
摘要:Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。 阅读全文
posted @ 2007-09-21 15:40 至尊王者 阅读(511) 评论(0) 推荐(0)
摘要:下面的这些内容不包含在本文中:官方的Lua包和文档 (参看 http://www.lua.org/),;涉及到Lua使用但不是被Lua使用者普遍使用的东西 (参看 http://www.lua.org/uses.html), ;本wiki已经存在的内容(参看 LuaDirectory). 类库和与Lua绑定的资源 LibrariesAndBindings 开发环境 [LuaIDE... 阅读全文
posted @ 2007-09-21 12:21 至尊王者 阅读(6581) 评论(1) 推荐(1)
摘要:官方资源 [Lua 官方主页] Lua社区 [Lua 邮件列表] [Lua IRC 聊天频道] (#来自irc.freenode.net) [Jean-Claude Wippler的wiki]. (不再维护) Lua 文档 [Lua架构] - 描述了Lua的业务驱动方式,目的以及架构解决方案。 带有例证的Lua文档 [与Will Harvey的谈话记录] Lua 教程 ... 阅读全文
posted @ 2007-09-21 12:16 至尊王者 阅读(614) 评论(0) 推荐(1)
摘要:另一种实现实现背景透明显示的简便方法是直接应用渲染管道流水线的Alpha测试功能进行,D3D中的Alpha颜色混合(2)介绍的接口方法实际就是对 Alpha测试的一个包装。Alpha测试是对需要写入绘图表面的像素颜色Alpha值进行测试,判断该Alpha值是否满足预先设定的条件,如果满足条件,则将该像素颜色值写入绘图表面,否则不写入。 阅读全文
posted @ 2007-09-20 21:36 至尊王者 阅读(2732) 评论(0) 推荐(0)
摘要:本篇是D3D中的Alpha颜色混合(1)的后续篇,主要讲利用ID3DXSprite来实现图片间的颜色透明效果。 在一幅图象上透明的显示另一幅图象,是Alpha颜色混合的一个典型应用,如下图所示,瞄准镜图象背景透明地显示在老虎背景图象上。 实现瞄准镜的背景透明显示,首先需要准备如下两张图: Alpha通道图(屏蔽图)的黑色像素对应的源图像素不被显示出来,Alpha通道图(屏蔽图)的白色像素对应的源图像素会显示出来。 阅读全文
posted @ 2007-09-20 21:35 至尊王者 阅读(3013) 评论(0) 推荐(0)
摘要:渲染管道流水线通常需要将来自顶点的颜色,纹理像素的颜色,光照颜色以及物体表面材质反射光颜色进行混合,生成计算机屏幕的像素颜色。将多种颜色混合在一起,必须考虑各种颜色的成分比例,这个比例由Alpha因子决定。对于游戏开发来说,利用Alpha颜色混合可产生背景透明的渲染效果。 一般的,屏幕像素的当前颜色值SrcColor可与目标像素颜色值DestColor进行如下运算,然后将获得的颜色值Color作为该像素的新颜色,以实现像素的目标颜色与源颜色的混合。 阅读全文
posted @ 2007-09-20 21:34 至尊王者 阅读(2112) 评论(0) 推荐(0)
摘要:Lua 5.0 参考手册 作者: Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes Copyright © 2003 Tecgraf, PUC-Rio. All rights reserved. 译者:ShiningRay Nicholas @ NirvanaStudio给予支持 1 - 绪论 Lu... 阅读全文
posted @ 2007-09-18 15:55 至尊王者 阅读(6875) 评论(0) 推荐(0)
摘要:去年我作了一个Lua脚本的C++包装,有许多朋友感兴趣,并尝试使用,我感到受宠若惊。事实上,我作的包装,学习的目的比较强,它还是有许多缺陷的。为了让朋友们少走弯路,我推荐使用LuaPlus作为C++的包装。 LuaPlus是Lua的C++增强,也就是说,LuaPlus本身就是在Lua的源码上进行增强得来的。用它与C++进行合作,是比较好的一个选择。LuaPlus目前版本为:LuaPlus fo... 阅读全文
posted @ 2007-09-18 15:47 至尊王者 阅读(4129) 评论(1) 推荐(0)
摘要:使用Lua作脚本,主要是因为它小巧玲珑(体积小,运行快),而且它的语法又比较简单明了。不过,使用LuaAPI将Lua引擎集成到程序中,确实有一些不方便——用落木随风网友的话来说,就是"就象用汇编"。当然,现在你不用再这么辛苦了,因为你可以使用LuaWrapper For C++。使用这个工具,在C++中集成Lua脚本就是轻而易举的事。你原有的C++函数和类,几乎不需要任何改变,就可以与Lua脚本共享。 阅读全文
posted @ 2007-09-18 15:11 至尊王者 阅读(4411) 评论(0) 推荐(0)
摘要:·内容 渲染到纹理是D3D中的一项高级技术。一方面,它很简单,另一方面它很强大并能产生很多特殊效果。 比如说发光效果,环境映射,阴影映射,都可以通过它来实现。渲染到纹理只是渲染到表面的一个延伸。我们只需再加些东西就可以了。首先,我们要创造一个纹理,并且做好一些防范措施。第二步我们就可以把适当的场景渲染到我们创建的纹理上了。然后,我们把这个纹理用在最后的渲染上。·main.cpp 首先我们得... 阅读全文
posted @ 2007-08-31 15:14 至尊王者 阅读(2042) 评论(0) 推荐(0)
摘要:其实这个很简单,只是创建设备的时候那个hwnd有点不一样! 可能有人就会说,用GetDesktopWindows()获得桌面的句柄不就行了?那就错了!这样会没有效果的!正确的代码如下: HWND hWnd = FindWindowEx(GetDesktopWindow() , 0 , " Progman " , " Program Manager " ); ... 阅读全文
posted @ 2007-08-31 15:14 至尊王者 阅读(1061) 评论(0) 推荐(0)
摘要:声明:此文章翻译自DirectX 9.0C OCT 2006 SDK的Direct3D For C++帮助文档的Enabling Direct3D Debug Information主题,前面部分有些没有翻译的。 在#include 语句前面加上以下这条语句即可: #define D3D_DEBUG_INFO 关闭调试时查看D3D Device对象的情况 开启调试时查看D3D对象的情况 ... 阅读全文
posted @ 2007-08-31 15:14 至尊王者 阅读(1376) 评论(0) 推荐(0)
摘要:CD3DApplication 框架类已经光荣的退役了,取而代之的是DXUT*系列函数。在这篇文章中将要简单介绍DXUT框架的应用。 最近的directx 下载地址 , 这里面包含了64位操作系统库以及directx10等等,directx10 的程序例子只能运行在windows vista 上面。尽管可以编译,但缺少directx3d10 运行库. 在安装sdk之后,别忘记安装Redist目录... 阅读全文
posted @ 2007-08-31 15:14 至尊王者 阅读(992) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 下一页