- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
LUA基本3D教程
LUA基本3D教程(由flashadow 接手翻译,感谢)
(原版请见/module- ... c-11229-start-0.psp)
本教程将教你如何在PSP上利用lua创建3D图形。在开始阅读本教程之前请确保你已经了
解:
1.如何编写基本的LUA代码。
2.如何图形化一个3D的平面。
当你结束本教程时你应该能够使用lua的3D函数画出基本的图形,以及如何旋转该图形,
并为该图形添加色彩和纹理。我将使用随lua player一起发布的3D Cube演示版代码和安
德鲁·卡朋特的图形快速库来解释如何在lua中使用3D函数。
建立基本的 3D 脚本
要在lua中使用3D函数首先必须创建一些3D缓存。我们可以使用以下函数达到此目的:
1. Gu.clear()
2. Gu.clearColor()
3. Gu.clearDepth()
4. Gu.clearStencil()
5. Gum.matrixMode()
6. Gum.perspective()
7. Gum.loadIdentity()
复制代码
Gu.clear()函数将清空Color(色彩)、Depth(位深)和Stencil(模板)缓存,或总称
为“绘制缓存(DrawBuffer)”,它们的值由Gu.clearColor()、Gu.clearDepth()和
Gu.clearStencil()函数分别指定。Gu.clear()函数使用下述变量之一获取一个整数值:
1.Gu.COLOR_BUFFER_BIT- 清空Color缓存为Gu.clearColor()函数设定的值。
2.Gu.DEPTH_BUFFER_BIT- 清空Depth缓存为Gu.clearDepth()函数设定的值。
3.Gu.STENCIL_BUFFER_BIT- 清空Stencil缓存为Gu.clearStencil()函数设定
的值。
要正确使用Gu.clear()函数你首先要将清空后需设定的值传递给它。使用下列函数达此目
的:
1.Gu.clearColor()-提取Color.new()函数设定的一个色彩参数。
2.Gu.clearDepth()-提取介于0至255之间的一个整数,0表示无位深,255表
示最高位深。
3.Gu.clearStencil()-本教程不阐述,也可以从0至255之间取值。
Gu.clearColor()函数将现有的绘制缓存清空为指定的色彩值,达到快速清屏至该色彩的目
的。Gu.clearDepth()函数将绘制缓存清空为指定的位深,并告知PSP应将屏幕清空至什么
级别。要创建一个绘制缓存可以使用下面的代码:
1. Gu.clearColor(0) --Clears to black
2. Gu.clearDepth(0) --Clears to the upper most depth
3. Gu.clear(Gu.COLOR_BUFFER_BIT+Gu.DEPTH_BUFFER_BIT)
复制代码
上述代码设置了一个基本的绘制缓存作为你绘图的基础。现在你需要建立起你的矩阵。要
达此目的,你就得用如下函数: Gum.matrixMode(),Gum.perspective() 和
Gum.loadIdentity()。Gum.matirxMode() 函数切换到你要创建的矩阵,你可以传递下述矩
阵之一给此函数:
1.Gu.PROJECTION- 切换至一个矩阵,它告知PSP如何将你的图形绘制到屏幕上
2.Gu.VIEW-切换至一个矩阵,它让用户查看绘制命令的结果。这个矩阵有效地配
置了你将要绘制的“画板”尺寸。
3.Gu.MODEL- 切换至一个矩阵,它让你创建3D图形。你创建的每一个3D图形都
有自己的“model(型号)”,它告诉PSP如何创建对象,绘制的大小,以及需
要时如何调整该对象的长宽。
4.Gu.TEXTURE- 切换至一个矩阵,它让你创建一个可以用于你的对象的纹理。
用下述代码可以为3D图创建一个基础矩阵:
1. Gum.matrixMode(Gu.PROJECTION)
2. Gum.loadIdentity()
3. Gum.p
文档评论(0)