SYJ教你制作3D游戏19-22

时间:2019-05-12 16:46:04下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《SYJ教你制作3D游戏19-22》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《SYJ教你制作3D游戏19-22》。

第一篇:SYJ教你制作3D游戏19-22

《SYJ教你制作3D游戏》——第二阶段基础教程第十九节:c_move的移动相对方向以及设置#include的引用路径

相信很多朋友玩过著名恐怖游戏:生化危机

生化危机一代至三代的角色操作方式一向均是按左、右方向键控制角色角度,按上、下方向键控制角色走动。

那么,如果我想给box.mdl也做出这种效果,我们可以通过c_move来实现吗?

答案是可以的。将box_mdl_act动作替换为以下代码:

action box_mdl_act(){ while(1){ if(key_w)

{

c_move(my, vector(10 * time_step, 0, 0), nullvector , GLIDE);

} if(key_s)

{

c_move(my, vector(-10 * time_step, 0, 0), nullvector, GLIDE);

} if(key_a)

{

my.pan-= 10 * time_step;

} if(key_d)

{

my.pan += 10 * time_step;

}

wait(1);} }

我们来测试一下,按下键盘上的A、D键,box.mdl旋转起来了!在按下W、S键,哈!它能顺着一定角度运动起来了!

我们来看代码,key_a和key_b条件事件被改动过了,这里就不再解释了。除此之外,以key_w的条件事件为例,原代码

c_move(my, nullvector , vector(10 * time_step, 0, 0),GLIDE);被替换为了

c_move(my, vector(10 * time_step, 0, 0), nullvector , GLIDE);

也就只是nullvector和vector(10*time_step,0,0)互换了位置。现在,我想,c_move中根据实体角度判断移动向量的强大功能已经被您理解了吧。

现在,我给大家出一道题:取消box.mdl的碰撞检测。也就是说,当box.mdl经过障碍物时能够穿越它。

其实,只要更改一下c_move就可以实现了。替换box_mdl_act动作为以下代码:

action box_mdl_act(){ while(1){ if(key_w)

{

c_move(my, vector(10 * time_step, 0, 0), nullvector , IGNORE_MODELS);

} if(key_s)

{

c_move(my, vector(-10 * time_step, 0, 0), nullvector, IGNORE_MODELS);

} if(key_a)

{

my.pan-= 10 * time_step;

} if(key_d)

{

my.pan += 10 * time_step;

}

wait(1);} }

现在,恢复c_move的碰撞检测。

不知道大家有没有在碰撞检测的过程中发现一些细节的东西。现在,请把你所操控的box.mdl缩放一下,使它的高度小于桌子腿的高度,然后再做测试,看看能否把box.mdl移动至桌子底下。也许你会发现,我的猜想不能实现。

为什么会这样呢?

因为,wed把desk.mdl看成了一个只有六个面的立方体,立方体的前、后、左、右四个面即desk.mdl整个模型前、后、左、右的最顶端,理所当然,碰撞检测是以这个六面的立方体为标准的,而不是以desk.mdl的形状为标准的。

那么,我们该如何实现让碰撞检测以模型的形状为标准呢?

非常简单,只要在sence.wmp里在desk.mdl属性中勾选“polygon/多边形”一项,建造关卡,便能实现。

最后,我还得布置给大家一个任务,新建一个脚本文件,命名为Function.c,并且置于game2根路径下,要求:将所有function函数和action动作代码剪切至Function.c,并在main.c中引用Function.c,且能正确执行。

我们之前学过,#include 一句能够引用3D gstudio安装路径“Gstudio7include”下的脚本文件,可是,若想在指定的根路径中引用,我们该如何写代码呢?

相信聪明的你已经猜到了,我们之前说过,脚本中所出现双引号”XX.xx”时,则表示引用文件,那么如果我将#include后接的改为”XX”不就行了吗?

注意#include “Function.c”的书写位置。

下一节课我们学习用MED制作简单动画。

第十九节教程到此结束。

《SYJ教你制作3D游戏》——第二阶段基础教程第二十节:制作动画

一个正常的游戏中,含有动画的模型必不可少。比如人物的走动动画、跳跃的动画等等。

Med不仅有模型建造的功能,它还可以制作模型动画。

现在,我们开始用Med制作box.mdl旋转的动画,当然,请你不必想着要在Sed中直接通过修改box.mdl的pan欧拉角值来实现我们所要的效果。

我们务必了解“帧”这一概念。所谓动画,即是由一幅幅静态图像通过迅速的变化而组成,如下图:

这是一个青色的正方形淡入渐变的动画,即它的亮度在不断增加。

实质上,这个动画的组成是5个帧,即5幅图像按顺序迅速变换而成的。

同样,在Med乃至一切制作动画的软件中,都必然遵循这一动画原理。

打开box.mdl,看到Med窗口的左下方,你会发现这个:

没错,这是一个动画帧。

现在,点击“对象”,“管理帧”,“添加帧”,将帧数设为2,点击“确定”。这时,我们看到在“帧”窗口中多了“Frame 0”和“Frame 1”,在这里,“Frame”为帧名,“0”、“1”即帧数。

现在,选中“Frame 1”,点击“转到帧”,这时,你会发现有一个红色的方框从“Frame 0”移动到了“Frame 1”,这表示当前所有视图中显示的模型状态在Frame 1中。

使用“旋转”工具将模型旋转90度。如果你觉得操作不顺手,可以在工具栏中点击“编辑选项”设置旋转吸附。

恭喜你,现在,你制作完成了一个正方体旋转的动画。

看到Med窗口的左下方,你会发现“动画”这一按钮变成了黄色,即可用状态,点击它,你便可以自由移动“动画”按钮左侧的滑块,查看每个动画帧模型。不过,现在我们所制作的动画模型是一个正方体,排除贴图因素,即便它往哪个方向旋转90度,它的形状仍不会改变,所以,在调整动画帧滑块的同时,也许你从3D视图中看不到正方体模型变化的样子。

点击“文件”,“引擎预览”,稍等片刻,你将会看到正方体正在飞速旋转!

但是,如果我们想控制这两个动画帧的播放速度,该怎么做呢?

也许你会想,给整个动画添加3个帧以上,第1帧中的正方体不变,第2帧中的正方体旋转45度,第3帧的正方体旋转90度,同时注意旋转的方向。

可是,这样做非常麻烦。要是你打算在Med中花大量帧做一个慢动作模型动画,而不借助其它如3ds max等软件,需要花费极大量的时间。其实,控制动画帧的播放速度需要在Sed中实现,下一节课我们继续学习。别忘了保存我们的box.mdl。

第二十节教程到此结束。

《SYJ教你制作3D游戏》——第二阶段基础教程第二十一节:控制动画帧,全局变量和局部变量

打开sence.wmp,这时,上一节课所修改并保存的box.mdl也会在场景中自动更新,我们只需要重新建造关卡更新sence.wmb即可。

至于game2目录下生成的.bak、.$$M、.$$w、.wed后缀名的临时残留文件我们可以把它删除。

测试运行main.c,我希望能够在预览窗口中看到每一个box.mdl做旋转动画,可是它们并没有动,也许它一直保持在第0帧。

我们需要给box.mdl添加让它播放动画帧的动作。

打开Function.c,在box_mdl_act动作中定义box_speed数字变量,不赋给其任何值:

var box_speed;

在循环中添加以下代码:

box_speed += 2.5 * time_step;ent_animate(my, “Frame”, box_speed, ANM_CYCLE);

我们测试运行一下,看到正方体播放的速度果真变慢了!而且即便box.mdl只有2帧,它的播放仍旧非常流畅!Med确实是一个非常神奇的东西,它能给任何两帧之间的动画增加无数补间帧,所以,我们在观看box.mdl动画时感觉不到顿卡。

我们来看代码,ent_animate(实体,”帧名”,播放百分比,动画类型);

这一句中,“帧名”这一概念我们上一节课已经说过了,即在box.mdl中给模型附加的帧的名字。

特别要注意的是“播放百分比”,这里所指的播放帧数是以百分比来计算的,不是按帧的数来计算的。这里我用了box_speed变量来表示,box_speed += 2.5 * time_step;一句即播放百分比在不断递增,以达到逐帧播放动画的效果。不用说,数字表示动画播放速度。

动画类型中,ANM_CYCLE为循环播放,是我们经常用到的。还有其余两种动画类型大家可以参考命令帮助。注意变量的定义方式,var box_speed;一句是在box_mdl_act中直接定义的,而不是置于整个脚本的最前端,这种定义方式的变量称为局部变量。置于整个脚本最前端,且置于所有动作、函数等之外的定义方式的变量称为全局变量。

它们之间的区别就是,局部变量只能够在其身处的动作、函数中使用,而不能够在异个动作、函数中使用。如box_speed是我们是在box_mdl_act 中定义的,这个变量只有box_mdl_act知道,它就不能够在box_action动作、甚至主函数中使用,否则会因找不到变量而出错。

而全局变量,其定义之后就通知了所有动作、函数,使其都知道存在着这个变量,能在任意动作、函数中使用。

局部变量和全局变量各有各的使用价值,均是为了方便管理、修改而设计的。

最后,作业是难免的。请在box.mdl中增加2个名为move的帧,即增加move 2和move 3,要求:在move 2中,正方体的x坐标增加a个单位长度(a可自定),move 3中,正方体的x坐标增加2a个单位长度。且在main.c中,控制正方体以5为单位速度播放完成Frame帧后转入move帧继续以2.5为单位速度播放,move帧播放完成后继续永久循环move帧。

答案就在这里,我把box_mdl_act动作的循环中有关动画帧的控制代码如下:

在循环前将:

var box_speed;

替换为:

var box_Frame_speed = 0;var box_move_speed;

在循环中将:

box_speed += 2.5 * time_step;ent_animate(my, “Frame”, box_speed, ANM_CYCLE);

替换为:

box_Frame_speed += 5 * time_step;ent_animate(my, “Frame”, box_Frame_speed, ANM_CYCLE);if(box_Frame_speed > 100){ box_move_speed += 2.5 * time_step;ent_animate(my, “move”, box_move_speed, ANM_CYCLE);} 下一节课我们完善对2D元素的学习。

第二十一节教程到此结束。

《SYJ教你制作3D游戏》——第二阶段基础教程第二十二节:滑块和窗口以及for循环

首先,我们必须明白,什么是滑块,什么是窗口,它们分别包含怎么样的属性。

窗口,即设置位图所视范围,也就是一张图片被截取之后所能看到范围,如下图:

被窗口截取的范围是我们可以看到整张图片的所示部分,被截取以外的范围即不可见,其范围同等于完全透明。

我们来看表达窗口的代码:

window(整张图片横坐标, 整张图片纵坐标, 窗口宽度坐标, 窗口高度坐标, 图片, 窗口相对于整张图片的横坐标, 窗口相对于整张图片的纵坐标);我想,我解释得已经够多了,如果你还不明白的话,剩下的就交给脚本来为你进行实践。

我想要把以上的解说图放到game2根路径下,命名为window_pic.bmp,并在main.c中建立一个名为window_pic_pan的面板且将解说图插入,横纵坐标分别为0,所插入的图片加入window语句,使该张图片只能看到解说图中的“截取范围”。应该非常简单。

在main.c中加入以下代码,置于该加入在什么位置,我想聪明的你已经明白了: PANEL* window_pic_pan = { window(0,0,300,250,“window_pic.bmp”,40,20);flags = VISIBLE;}

我想说这确实非常简单。

下一步,我想实现窗口相对于整张图片的横坐标以5为相对速度值不断递增,当递增至300时停止。

听起来非常复杂,不过也许你能够办得到,定义两个变量:

var window_x = 40;将

window(0,0,300,250,“window_pic.bmp”,40,20);

替换为:

window(0,0,300,250,“window_pic.bmp”,window_x,20);

并试试在主循环中添加以下代码:

window_x += 5 * time_step;if(window_x >= 300)window_x = 300;

在上一步中,或者是将主循环

while(1)

改为:

while(window_x <= 300)

并在主循环中添加:

window_x += 5 * time_step;

这些东西都是我们已经学过的,所以就不再解释了。后一种更改主循环代码的方法所使用的灵活技巧相信大家能够自己领悟。运行一下脚本,理所当然能够实现。

不过,针对于主循环里新添的两行代码,我有一种更为简单的实现办法。即使用for循环语句。

在主函数中,主循环前添加以下代码:

for(window_x;window_x <= 300;window_x += 5 * time_step)wait(1);

因为for也是一个循环,所以我们没有必要把它放在主循环里面,使其“在循环中循环”。

我们来看代码,for(数值初始值;数值范围;数值变化){循环结束后触发的事件}。这就是for循环的基本组成。数值初始值,在我们的预定义的window_x全局变量里已经声明其为40;数值范围,即给数值的变化限定一个范围,在这里限定为小于或等于300的数,即window_x不能大于300;数值变化当然不用说,即描述window_x的值以5为相对速度递增。

在for循环之后的wait(1);表示循环条件完成之后所触发的事件,即退出这个for循环并继续执行该for循环后面的代码,这正是我为什么要把for循环放在主循环前,而不是主循环后的原因。

对于window语句的学习,至于它在游戏制作中的具体实际用途,比如,做一个进度条,或者是一个能表达角色某些属性,如生命值属性的指示条等许多你能够想到的东西。

滑块,即一个元素,当鼠标指针经过并在此之上按住不放且拖动时,该元素也随鼠标指针的移动而移动,且在移动的同时以触发某些事件,如更改变量等为作用意义。

滑块分为横向滑块和纵向滑块两种,我们只要了解其中一种,比如横向滑块就可以了,另一种大家自己总结。

我这里准备了一张滑块的图片素材:

我必须说我画得太简单了。

在window_pic_pan中加入以下代码:

hslider(50, 100, 265, “huakuai.bmp”, 0, 100, window_x);

并选中for循环所在行,使其底色变成黄色,点击工具栏上的“注释行”按钮,忽略这条代码。当你想要恢复代码的作用时,可以点击“注释行”按钮右边的“取消注释行”按钮恢复。

我们测试运行一下,试着拖动滑块,如果你发现鼠标指针不起作用的话可以在主函数中设定鼠标模式。

左右移动滑块,哈!window_pic也随着滑块的移动而左右移动!

我们来看代码,hslider(横坐标, 纵坐标, 滑块总长, 滑块图片, 滑块所示变量最小值, 滑块所示变量最大值, 滑块所示变量);

前四项属性我就不多说了,很容易理解。滑块所示变量最小值,即滑块拖至最左端时,window_x的值;滑块所示变量最大值呢,和最小值的含义规则是同等的;滑块所示变量,即window_x随滑块的移动而被影响。这里要注意的是,滑块所示变量也能够同时影响滑块的初始位置。如,你可以在预定义window_x全局变量中给它赋值0或100并分别测试一下看看滑块的初始位置有何变化。

置于滑块的应用呢,可以用来调节某些东西,如音量大小等。

纵向滑块,即vslider的用法和横向滑块基本相似。

下一节课我们继续完善对2D元素的学习。

第二十二节教程到此结束。

第二篇:3D游戏软件设计

《3D游戏软件设计》

一、单选题(共 20 道试题,共 40 分。)

1.现有三组逆时针环绕的轮廓线,依次包含。现在,如果把区域的环绕属性设置为奇数类型,那么最终绘制出的区域描述正确的是 A.一个环形 B.实体块

C.一个环形加一个实体块 D.无法确定具体填充区域 满分:2 分

2.在进行点选操作时,我们使用一个名称标识了三个重叠的圆形。现在对它进行一次点击,那么它产生的点击记录为多少次 A.3 B.1 C.2 D.0 满分:2 分

3.在利用矩阵进行图形三维变换时,我们只用3×3矩阵无法完成的变换操作是

A.平移 B.旋转 C.错切

D.以上说法都不对 满分:2 分

4.在复合变换中,固定坐标模式的变换,对于坐标变换操作的调用和执行顺序描述中,正确的是

A.相对于同一个固定坐标系先调用的变换先执行 B.相对于同一个固定坐标系先调用的变换后执行

C.相对于同一个固定坐标系调用和执行的顺序没有必然联系 D.以上说法都不对 满分:2 分

5.函数glAlpaFunc用于设置alpha测试的参考值和比较函数的参数中,哪个参数的意义表示“绝不接受这个片段” A.GL_NERVER B.GL_ALWAYS C.GL_LESS D.GL_EQUAL 满分:2 分

6.函数void glBlendEquation(Glenum mode)函数中的mode对取值为GL_FUNC_SUBSTRACT描述正确的是 A.CsS+CdD B.CsS-CdD C.CdD-CsS D.CsopCd 满分:2 分

7.我们在绘制完物体后,如果锁定了深度缓冲区,接着再调换物体的z方向的次序,此时关于遮挡关系以下说法中正确的是 A.AB物体重叠部分会发生混合

B.遮挡关系发生改变,AB物体遮挡关系互调 C.遮挡关系不变 D.无法判断 满分:2 分

8.glPixelMap{ui us f}v(Glenum map,Glint mapsize,const TYPE* values)函数被加载,它的函数参数参数mapsize的取值有意义的是 A.10 B.20 C.32 D.42

满分:2 分

9.一束白光照射一个有光泽的蓝色球体,那么这个球体的整体看上去是蓝色的,它上面的亮点则是什么颜色的 A.红色 B.绿色 C.白色 D.蓝色 满分:2 分

10.白色的颜色值为

A.(0,0,0)B.(255,0,255)C.(255,255,255)D.(1,1,1)满分:2 分

11.现在有控制点为四个,每个顶点有三个坐标,现在我们想利用函数gluNurbsSurface进行NURBS表面设置,那么u_stride的值应该设置为 A.3 B.4 C.12 D.48 满分:2 分

12.进行点选操作后,假设当前的选择缓冲区为pSelectBuff,那么其中的pSelectBuff[0]的值得含义是

A.名字堆栈中压入的名字数

B.自上一个点击记录之后,与视景体相交的图元的所有顶点的最小窗口坐标的z值 C.自上一个点击记录之后,与视景体相交的图元的所有顶点的最大窗口坐标的z值 D.点击发生时名字堆栈的内容 满分:2 分 13.下列哪个不属于计算机上支持的像素位数

A.4位 B.24位 C.20位 D.32位 满分:2 分

14.OpenGL中如何判断一个点接收了光源的多少光线

A.通过距离光源的距离进行计算 B.通过法线相对光源的方向进行计算 C.通过物体的颜色值进行计算

D.通过物体和光源的颜色值的综合考虑进行计算 满分:2 分

15.OpenGL提供的投影矩阵堆栈个数为

A.1 B.2 C.4 D.8 满分:2 分

16.利用3×3矩阵进行二维点集变化时,我们使用的矩阵为[1,0,0;0,-1,0;0,0,1],那么变化后的效果为

A.沿着X轴对称变换 B.沿着Y轴对称变换 C.沿着原点对称变换 D.沿着直线y=x对称变换 满分:2 分

17.下列哪个颜色不属于三原色

A.红

B.蓝 C.绿 D.黑 满分:2 分

18.如果有两束光进入人眼,他们的成分为(R1,G1,B1)和(R2,G2,B2)那么叠加在一起的时候,如果红色分量超出1了,那么最后的叠加结果为 A.R1+R2 B.1-R1-R2 C.1 D.R1+R2-1 满分:2 分

19.通常,我们的运动模糊效果,可以利用哪个缓冲区实现

A.颜色缓冲区 B.深度缓冲区 C.模板缓冲区 D.积累缓冲区 满分:2 分

20.OpenGL中复杂的图形绘制一般都是如何实现的

A.用曲线模拟 B.用四边形拼接 C.用三角形拼接

D.只要是凸多边形拼接就可以 满分:2 分

二、多选题(共 10 道试题,共 20 分。)

V

1.下列哪些是OpenGL的常用库

A.GL B.GLU

C.GLAUX D.GLUT 满分:2 分

2.在多边形偏移中,可以有哪几种模式用于不同的多边形光栅化

A.GL_FILL B.GL_LINE C.GL_POINT D.GL_TRANGLES 满分:2 分

3.对计算机图形进行显示的方法中可以起到抗锯齿作用的有哪些方法

A.提高屏幕分辨率 B.采用区域覆盖法 C.加权覆盖法 D.抖动技术 满分:2 分

4.OpenGL允许把与颜色相关的哪三个不同参数和光源相关联

A.GL_AMBIENT B.GL_DIFFUSE C.GL_SPECULAR D.GL_AMBIENT 满分:2 分

5.OpenGL包含有哪几个缓冲区

A.颜色缓冲区 B.深度缓冲区 C.模板缓冲区 D.积累缓冲区

满分:2 分

6.实现物体坐标到达屏幕坐标的处理管线中,包括的处理步骤有

A.视图模型矩阵操作 B.投影操作

C.透视除法进行规范化 D.视口变换 满分:2 分

7.在局部光源模型中,随着光源的距离增加,光的强度不会随之衰减的有

A.环境光 B.散射光 C.镜面光 D.发射光 满分:2 分

8.以下是正交投影glOrtho函数作用特点的是

A.视体是一个椎体 B.物体近大远小 C.视体为立方体

D.物体的距离并不影响它看上去的大小 满分:2 分

9.以下是描述glBindTexture函数功能的是

A.将生成的纹理的名称绑定到指定的纹理上 B.创建纹理并加载

C.选择已经加载的纹理进行贴纹理操作 D.以上都对 满分:2 分

10.一下那些属于OpenGL的特点

A.标准支持灵活

B.具有良好伸缩性 C.具有良好扩展性 D.扩展性不强 E.满分:2 分

三、判断题(共 20 道试题,共 40 分。)

V

1.设置光源位置时,当我们的光源坐标位置(x,y,z,w)中的w为0时代表我们的光为局部光源 A.错误 B.正确 满分:2 分

2.glNormal*函数是glBegin和glEnd之间的合法函数

A.错误 B.正确 满分:2 分

3.无论是在反馈模式下还是选择模式下,物体的信息总是在任何片断测试之前返回

A.错误 B.正确 满分:2 分

4.函数glLoadName用于将当前的名字替换名字堆栈顶部的元素

A.错误 B.正确 满分:2 分

5.函数glPerspective(GLdouble fogy,GLdouble aspect, GLdouble near,GLdouble far)所定义的视体仅限于和X和Y轴对称的平截头体 A.错误 B.正确 满分:2 分

6.视图变换和模型变换可以互逆变换

A.错误 B.正确 满分:2 分

7.位图字体无法进行旋转

A.错误 B.正确 满分:2 分

8.过滤函数中的参数GL_LINER它会对一小块区域的纹理单元值进行加权平均,用于放大或者缩小 A.错误 B.正确 满分:2 分

9.对物体进行平移变换和缩放变换的顺序不会对最后结果产生影响

A.错误 B.正确 满分:2 分

10.OpenGL至少可以在场景中包含1个光源

A.错误 B.正确 满分:2 分

11.已知两个向量,可以通过运算V1^.V^2获得它们所在平面的法线

A.错误 B.正确 满分:2 分

12.glEnable(GL_DEPTH_TEST)函数的作用是开启深度测试

A.错误 B.正确 满分:2 分

13.为了使用mipmap,必须提供全系列的大小为2的整数次方的纹理图像,其范围从2*2到纹理的最大单元

A.错误 B.正确 满分:2 分

14.纹理坐标必须在RGBA模式下才能使用

A.错误 B.正确 满分:2 分

15.函数glDepthMask的flag参数设置为GL_TRUE,则标志着深度缓冲区可以写入

A.错误 B.正确 满分:2 分

16.对于基本的求值器使用绘制步骤为先开启求值器,设置控制点,设置绘制属性和模式,最后进行渲染 A.错误 B.正确 满分:2 分

17.位图是由0和1组成的矩形数组

A.错误 B.正确 满分:2 分

18.镜面亮点的颜色就是光源的镜面光的颜色

A.错误 B.正确 满分:2 分

19.颜色混合操作在颜色索引模式下是非法的

A.错误 B.正确 满分:2 分

20.glRotatef(fRot,0.0f,1.0f,0.0f)函数可以让图形绕着X轴偏转fRot角度

A.错误

B.正确 满分:2 分

第三篇:3D游戏软件设计

注:“★考核知识点”后面的标注内容在PPT中均有对应章节,因PPT序号混乱,不在考核知识点后一一罗列,请在PPT中查找。

一、客观部分:(单项选择、多项选择、不定项选择、判断)

(一)、选择部分

(1)OPenGL常用的库里面,属于核心库的是()

A GL B GLU C GLAUX DGLUT ★考核知识点: OpenGL概述

(2)OPenGL渲染流水中,对光栅化描述正确的是()

A 把顶点变换成图元

B 把几何数据和像素数据转换为片断的过程。它将几何数据转换成片元,片元和要显示的像素一一对应

C OpenGL应用程序可以在几何物体上应用纹理图像,使它们看上去更为逼真D主要的内容就是裁剪,它的任务是消除位于半空间之外的那部分几何图元。在某些情况下,还要进行透视除法,用以得到归一化的设备坐标

★考核知识点: OpenGL概述

(3)下面对于OpenGL特点描述正确的有()

A标准支持灵活,可以用软件例程实现也可以使用软硬件组合使用 B具有灵活的伸缩性

C提供了一套良好的功能扩充机制,并且各个版本向后兼容 D跨平台,在科研和教学上是主流

★考核知识点: OpenGL概述

(4)1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与微软公司共同开发了NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用()

★考核知识点: OpenGL概述

(5)OpenGL(开放性图形库Open Graphics Library):是图形硬件的一种软件接口()

★考核知识点: OpenGL概述

(6)()是用于定义构成物体的三角形单元列表的坐标系。

A 观察坐标系B世界坐标系C本地坐标系D转换坐标系

★考核知识点: 状态管理和绘制几何物体

(7)glBegin()函数的意义是()A标志着程序的执行的开始 B标志着一个顶点数据列表的开始 C标志着OpenGL的绘制操作的开始 D标志着当前函数的开始

★考核知识点: 状态管理和绘制几何物体

(8)在win32程序中,主函数是从哪里进入执行的()

A GLMain B WinMain C Begin Dmain ★考核知识点: 状态管理和绘制几何物体

(9)OpenGL中在颜色索引模式下使用的用于选择单值索引的函数是()。A glIndex BglClampColor C glClear D glColor3f ★考核知识点: 颜色渲染和纹理贴图(10)下列哪个颜色不属于三原色()A红 B蓝 C绿D白

★考核知识点: 颜色渲染和纹理贴图

(11)OpenGL的光照模型根据材料反射的红、绿和蓝光的比例来模拟它的颜色。当一个纯红的球体,如果给球体仅仅投上绿色的光线,那么看起来球的颜色会是黑色()

★考核知识点: 颜色渲染和纹理贴图

A(0,0,0)B(255,0,255)C(255,255,255)D(1,1,1)(12)用函数glColor3i()函数设置的黑色的颜色值为()

★考核知识点: 颜色渲染和纹理贴图

(13)OpenGL中光照模型,被物体表面均匀的反射。即使光是被均匀的反射回去的,它直射的物体表面比从某个角度照射过来时要亮()

A环境光B散射光C镜面光D发射光

★考核知识点:环境光、散射光、镜面光、发射光

(14)OpenGL中如何判断一个点接收了光源的多少光线()

A通过距离光源的距离进行计算 B通过法线相对光源的方向进行计算 C通过物体的颜色值进行计算

D通过物体和光源的颜色值的综合考虑进行计算

★考核知识点:光照

(15)OpenGL提供了最大数目为N的单场景内光照光源模型,N为()

A 1 B 8 C 16

D不限制,只要为2的幂就可以了

★考核知识点:光照

(16)OpenGL光照模型中,有一种会将光源强烈的反射到了另外一个特定的方向。高亮 A镜面光B聚光灯光C环境光D发射光 度的光柱往往能在被照射的物体上产生称之为亮斑的亮点()

★考核知识点:光照

(17)OpenGL光照模型中,表面的发射颜色可以增加物体的强度,但是他们不受任何★考核知识点:光照 光源的影响,在整个场景中,并没有作为一种额外的光照()(18)设置光源位置时,当我们的光源坐标位置(x,y,z,w)中的w为0时代表我们的光为平行光源()

★考核知识点:光照

(19)OpenGL一个场景中至多可以在包含16个光源()

★考核知识点:光照

(20)用函数glColor3i()函数设置的黑色的颜色值为()

★考核知识点:绘制像素、位图字体和图像

(21)像素数据从可以开始从缓冲区读取到内存然后把像素数据从内存写入到帧缓冲最后在帧缓冲内部复制像素数据()

★考核知识点:绘制像素、位图字体和图像

(22)以下哪个函数可以设置当前的光栅位置()

A glTranslatef()B glRasterPos()C glRotatef()D glDrawPos()★考核知识点:绘制像素、位图字体和图像

(23)在绘制几何图形之时,我们可以使用glColor*()函数去设置当前颜色或者当前颜色索引()

★考核知识点:绘制像素、位图字体和图像

(24)在设置了光栅位置之后,我们可以使用glBitmap函数来绘制数据()

★考核知识点:绘制像素、位图字体和图像

(25)void glRasterPos2*(type x,type y);用于设置位图的绘制位置。()

★考核知识点:绘制像素、位图字体和图像

(26)glCopyPixels的像素路径包括()

A像素传输操作B基于片断的操作C在帧缓冲区暂存D光栅化操作

★考核知识点:绘制像素、位图字体和图像

(27)当我们的源和目标的alpha值都为0.35时,当使用函数glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)进行像素混合,得出的结果描述正确的是?()

A源和目标混合效果相同 B混合色更接近源 C混合色更接近目标 D无法判断

★考核知识点:混合抗锯齿雾多边形偏移

(28)启动混合后,如果绿色物体和一个红色物体用glBlendFunc(GL_ONE,GL_ONE)方式混合后,结果的混合部分的颜色为(D)A红色B绿色C白色D黄色

★考核知识点:混合抗锯齿雾多边形偏移

(29)图形学中称由于采样频率不足而造成的失真为走样,反走样通过多重采样改善图形锯齿效果()

★考核知识点:混合抗锯齿雾多边形偏移

(30)如果不进行混和操作,每个新的片元都被OpenGL当成是不透明的,覆盖掉帧缓存已存在的颜色值。()

★考核知识点:混合抗锯齿雾多边形偏移

(31)颜色定义中RGBA的A是alpha值,alpha值的作用是将已处理过的片元颜色值与存储在帧缓存中的像素颜色结合起来()

★考核知识点:混合抗锯齿雾多边形偏移

(32)当前属于颜色索引模式时,我们可以进行的操作有()。

A实现颜色混和操作B实现透明效果C实现颜色叠加D实现颜色渐变效果

★考核知识点:混合抗锯齿雾多边形偏移

(33)void glBlendFunc(Glenumafactor,Glenumbfactor)

其中参数afactor和参数bfactor分别用于指定源和目标的混合因子()

★考核知识点:混合抗锯齿雾多边形偏移

(34)颜色混合方程中,GL_FUNC_ADD实现的功能是()

A CsS+CdD B CsS-CcD C min(CsS,CdD)D max(CsS,CdD)★考核知识点:混合抗锯齿雾多边形偏移

(35)开启颜色混合的函数方式为()

A GL_BLEND B GL_BLENDING C GL_RENDER D GL_ENABLEBLEND ★考核知识点:混合抗锯齿雾多边形偏移

(36)一个矢量加上一个矢量结果为()

A一个矢量 B一个标量

C如果为零则不是矢量,其它情况下皆为矢量 D以上说法都不对

★考核知识点:图形变换的数学基础

(37)两个矢量之间的点乘结果为()

A一个矢量 B一个标量

C如果为零则不是矢量,其它情况下皆为矢量 D以上说法都不对

★考核知识点:图形变换的数学基础

(38)glLoadIdentity()函数对于4×4矩阵操作结果为()

A [0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0] B1,1,1,1;1,1,1,1;1,1,1,1;1,1,1,1] C[1,0,0,1;0,1,0,1;0,0,1,1;0,0,0,1] D[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1] ★考核知识点:图形变换的数学基础

(39)我们在使用定义视口函数 glViewport 中,第三个参数有什么作用()

A描述视口的距离屏幕最左位置 B描述视口的距离屏幕最上位置 C描述视口的高度 D描述视口的宽度

★考核知识点:图形变换的数学基础

(40)通过矩阵[sx,0;0,sy]对二维的不经过原点的图元进行缩放变换,有可能得到的结果为()

A图元相对原点的位置变化了 B图元自身尺寸变化了

C图元可以只发生旋转,相对原点位置没有移动 D图元自身发生了旋转

★考核知识点:图形变换的数学基础

(41)从物体坐标到屏幕坐标的显示流程中我们必须要经过的经典的变换流水包()

A世界坐标系内地变换 B对窗口的裁剪操作 C窗口到视口的变换 D对模型进行坐标进行变换

★考核知识点:OpenGL的视图变换

(42)函数void gluPerspective(Param1,Param2,Param3,Param4)中,标示近裁剪面的是哪个参数()

A Param1 BParam2 C Param3 D Param4 ★考核知识点:OpenGL的视图变换

(43)哪些变换分别用于设定物体在世界坐标系中的位置、方向以及模型大小。()

A平移变换B旋转变换C缩放变换D投影变换

★考核知识点:OpenGL的视图变换

(44)()变换后的的几何体位于观察坐标系中。

A局部变换B取景变换C世界变换D空间变换 ★考核知识点:OpenGL的视图变换

(45)投影变换包括哪几种投影方式。()

A平面投影B透视投影C正射投影D缩放投影

★考核知识点:OpenGL的视图变换

(46)下对函数gluLookAt(0,0,0, 0,0,-3,1,0,0)描述正确的是

A观察点在原点(AD)B正方向为z轴负方向 C观察方向指向z轴正方向 D正方向为x轴正方向

★考核知识点:OpenGL的视图变换

(47)glRotatef(fRot,1,1,0)描述先按照X轴旋转fRot,接着绕Y轴旋转fRot()

★考核知识点:OpenGL的视图变换

(48)在OpenGL中如果要实现运动模糊效果,需要借助以下哪个缓冲区()

A深度缓冲区B帧缓冲区C模版缓冲区D积累缓冲区

★考核知识点:帧缓冲区

(49)当前程序的状态处于常规的绘图模式,那么接下来使用下列哪些函数可以退出当前绘图模式()

A glRender(GL_FEEDBACK);B glRender(GL_SELECT);C glEnd();D glBegin(GL_TRIANGLES)★考核知识点:帧缓冲区

(50)雾化效果在颜色索引模式下是不可用的()

★考核知识点:帧缓冲区

(51)如果我们需要使用OpenGL进行3维点选操作,那么可以通过函数glRenderMode()指定()进入选择模式

A GL_FEEDBACK BGL_SELECT C GL_PEEK D GL_MODEVIEW ★考核知识点:帧缓冲区

(52)OpenGL中如果锁住了深度缓冲区,那么所有的物体的深度就无法测试了,物体只是根据绘制的先后相互覆盖了()

★考核知识点:帧缓冲区

(53)绘制球体,我们使用函数:

void gluSphere(GLUquadricObj *obj,Gldoubleradius,Glintslices,Glint stacks);()

下面,我们对参数描述正确的选项有()A slice代表的就是经线的数目 B stacks参数代表的就是纬线的数目 C slice参数代表的就是纬线的数目 D stacks代表的就是经线的数目

★考核知识点:分割化和二次方程表面

(54)OpenGL中我们需要完成对NURBS对象的销毁,调用的函数是gluDeleteNurbsRenderer()

★考核知识点:分割化和二次方程表面

(55)常见的纹理寻址模式有()A重叠纹理寻址模式B镜像纹理寻址模式 C钳位纹理寻址模式D边界颜色纹理寻址模式

★考核知识点:分割化和二次方程表面

(56)gluQuadricDrawStyle 函数选择用于绘制几何形状的图元类型。系统默认的类型是使用三角条状图元来填充所要绘制的几何形状,填充模式默认为 A GLU_LINE B GL_FILL C GLU_SILHOUETTE D GLU_POINT ★考核知识点:分割化和二次方程表面

(57)绘制球体,我们使用函数:

void gluSphere(GLUquadricObj *obj,Gldoubleradius,Glintslices,Glint stacks);下面,我们对参数描述正确的选项有()

A slice代表的就是经线的数目 B stacks参数代表的就是纬线的数目 C slice参数代表的就是纬线的数目 D stacks代表的就是经线的数目

★考核知识点:求值器和NURBS(58)我们的B样条曲线(三次)和与贝塞尔曲线很相似,不同之处是此曲线会分解成很多的小段。每个给定段的形状都仅受到最近4个控制点的影响()

★考核知识点:求值器和NURBS(59)我们的B样条曲线(三次)和与贝塞尔曲线很相似,不同之处是此曲线会分解成很多的小段。每个给定段的形状都仅受到最近4个控制点的影响()

★考核知识点:求值器和NURBS(60)()是Direct3D用来存储绘制到屏幕上的每个像素点深度信息的一块内存缓冲区

A 广度缓存 B 深度缓存 C 深度测试 D 广度测试

★考核知识点:求值器和NURBS(61)OpenGL中我们需要完成对NURBS对象的销毁,调用的函数是gluDeleteNurbsRenderer()

★考核知识点:求值器和NURBS(62)纹理阶段混合状态用于指定当前纹理颜色值和Alpha值的混合方法()

★考核知识点:求值器和NURBS(63)通常情况下,深度缓存用于判断三维空间中物体的遮挡情况()

★考核知识点:求值器和NURBS(64)设置深度缓存是指设置深度测试成功时对深度缓存如何操作()

★考核知识点:求值器和NURBS(65)图形学中称由于采样频率不足而造成的失真为走样,反走样通过多重采样改善图形锯齿效果()

★考核知识点:求值器和NURBS(66)渲染后物体模型通常是由三角形图元组成的,我们称它为一个Mesh结构()

★考核知识点:求值器和NURBS(67)若要从缓存中只读不写数据,就不需要锁定缓存,用完后解锁()(68)如果我们需要使用OpenGL进行3维点选操作,那么可以通过函数glRenderMode()指定GL_SELECT,进入选择模式()

(69)在执行用于操纵名字堆栈的函数或调用glRenderMode()函数之后,如果出现了一次点击,OpenGL就会在选择数组中写入一个点击记录,所以,如果共享相同的名称对象,不会产生多条点击记录。()(70)在点击发生时,名字堆栈的内容从()的元素开始。A最顶部B上一个操作的位置C最底部D任意

(71)如果我们需要使用OpenGL进行3维点选操作,那么可以通过函数glRenderMode()指定GL_SELECT,进入选择模式()

(72)进行点选操作后,假设当前的选择缓冲区为pSelectBuff,那么其中的pSelectBuff[0]的值得含义是()

A自上一个点击记录之后,与视景体相交的图元的所有顶点的最小窗口坐标的z值 B自上一个点击记录之后,与视景体相交的图元的所有顶点的最大窗口坐标的z值 C点击发生时名字堆栈的内容 D名字堆栈中压入的名字数

(73)OpenGL中如果锁住了深度缓冲区,那么所有的物体的深度就无法测试了,物体只是根据绘制的先后相互覆盖了()

★考核知识点:选择和反馈

(74)名字堆栈形成了返回选择信息的基础,如果此时我们需要使用某个名称来替换名字堆栈顶部的元素,可以使用函数为()

A void glInitNames(void);B void glPushName(GLuint name);C void glPopName(void);D void glLoadName(Gluint name);★考核知识点:选择和反馈

(75)选择返回功能函数:

void glSelectBuffer(Glsizeisize,Gluint *buffer)对函数描述正确的是()A buffer参数指向的数组用于存放选择数据

B buffer参数指向的数组仅仅用于存放选择的物体ID C size表示这个数组可以存储单个数据的大小 D size表示这个数组可以存储的最大值

★考核知识点:选择和反馈

(76)用glSelectBuffer()函数指定用于返回点击记录的数组()

★考核知识点:选择和反馈

(77)使用函数 void gluPickMatrix(Gldoublex,Gldoubley,Gldoublewidth,Gldoubleheight,Glint viewport[4]);选择的挑选区域的中心是()A 世界坐标B窗口坐标C物体坐标D可以任意指定

★考核知识点:选择和反馈

(78)由于粒子之间的碰撞计算量很大并且对于大多数模拟来说没有必要,所以我们很少使用粒子之间的碰撞。()

★考核知识点:粒子系统

(79)粒子(Particle)是一种微小的物体,在数学上通常用点来表示其模型,所以显示和表示粒子时,我们通常使用点结构来描述。()

★考核知识点:粒子系统

(80)以下可以通过常见的粒子系统实现的是()A雪花B下雨C喷泉喷水D金属车漆效果

★考核知识点:粒子系统

(81)如果有两束光进入人眼,他们的成分为(R1,G1,B1)和(R2,G2,B2)那么叠加在一起的时候,如果蓝色分量超出1了,那么最后的叠加结果为()

A(R1, R2,1)B(R1+R2, R1+R2,1-R1-R2)C(R1+R2, R1+R2,1)D(R1, R2, 1-R1-R2)★考核知识点:混合效果

(82)Alpha分量主要是用来指定像素的混合计算比例的()

★考核知识点:混合效果

(83)D3DCOLORVALUE结构体中包含r、g、b和a4个分量,表示物体表面对各种反射光的各种成分的反射比率。r=0.0 g=b=a=1.0;r=g=0.0。此时红光和蓝光照射过来,只有蓝光被反射,即材质看上去为蓝色()

★考核知识点:混合效果

(84)OpenGL的光照模型根据材料反射的红、绿和蓝光的比例来模拟它的颜色。当一个纯红的球体,如果给球体仅仅投上绿色的光线,那么看起来球的颜色会是()A红色B绿色C白色D黑色

★考核知识点:混合效果

(85)平面着色模式,所有像素的Alpha值都大于等于该多边形的第一个顶点的Alpha值()

★考核知识点:混合效果

(86)像素的Alpha值就是用来做纹理Alpha混合时进行加权计算的的权值()

★考核知识点:混合效果

(87)Alpha测试并不把当前像素的颜色与颜色缓冲中像素的颜色混合,像素要么完全不透明,要么完全透明()

★考核知识点:混合效果

(88)OpenGL中指定源混和因子和目标混和因子的函数:

void glBlendFunc(Glenumafactor,Glenumbfactor)描述正确的是()A其中参数afactor和参数用于指定源混合因子 B其中参数bfactor用于指定目标的混合因子 C其中参数afactor用于指定目标的混合因子 D其中参数bfactorb用于指定源的混合因子

★考核知识点:混合效果

(89)常见的纹理寻址模式有()

A重叠纹理寻址模式B镜像纹理寻址模式C钳位纹理寻址模式D边界颜色纹理寻址模式

★考核知识点:纹理的高级技巧

(90)通过矩阵[sx,0;0,sy]对二维的不经过原点的图元进行缩放变换,有可能得到的结果为 A图元相对原点的位置变化了()B图元自身尺寸变化了

C图元可以只发生旋转,相对原点位置没有移动 D图元自身发生了旋转

★考核知识点:纹理的高级技巧

(91)创建一个矩形图元255*255,它的大小恰好与纹理图中纹理的大小一样,要映射整个图元面积,分配给图元纹理坐标为().A(0.0,0.0)(1.0,0.0)(1.0,1.0)(0.0,1.0)B(0.0,0.0)(255.0,0.0)(255.0,255.0)(0.0,255.0)C(0.0,0.0)(0.0,1.0)(1.0,0.0)(1.0,1.0)D(0.0,0.0)(0.0,255.0)(255.0,0.0)(255.0,255.0)★考核知识点:纹理的高级技巧

(92)三维纹理图像可以看成是由一层一层的二维子图像矩阵构成的,在内存中,这些矩形按顺序排列在一起。()

★考核知识点:纹理的高级技巧(93)对函数void glTexImage3D(Glenum target, Glint level,GlintinternalFormat ,Glsizeiwidth,Glsizeiheight,Glsizeidepth,Glintborder,Glenumformat,Glenum type, constGlvoid * texels);参数描述正确的是()A level是纹理目标在内存中的优先级 Blevel是mipmap细节层的序号 C level描述了纹理的强度程度 D描述了纹理的有效值取值范围

★考核知识点:纹理的高级技巧

(94)glCopyPixels()函数,但是并不把像素读到缓冲区,而是放在纹理内存中()

★考核知识点:纹理的高级技巧

(95)对OpenGL实现的Mipmap描述正确的是()

A它必须根据被贴图的物体的大小手动的确定应该使用哪个纹理 B它会根据被贴图的物体的大小自动确定应该使用哪个纹理 C Mipmap不需要一些额外的计算

D Mipmap并不需要额外的一些纹理存储区域

★考核知识点:纹理的高级技巧

(96)glPixelStore*()函数可以用于设置像素存储模式,使用诸如*ROW_LENGTH、*ALIGNMENT、*SKIP_PIXELS和*SKIP_ROWS这样的参数。这个函数用于控制对一个完整的像素或纹理单元矩形的一个子矩形的引用()

★考核知识点:纹理的高级技巧

(97)一个带有纹理图像的物体迅速的远离观察点而去时,纹理图像必须随必须被投影的图像一起缩小。为了避免闪烁抖动等人工痕迹,可以指定一系列预先过滤的分辨率递减的纹理图像称为()

A Vertex Shader B mipmap C HLSL D Cg ★考核知识点:纹理的高级技巧

(98)void glTexParameteri 第三个参数类型为GL_CLAMP描述正确的是

A将大于1.0的数值设置为1.0,将超出[0.0,1.0]范围的数值截取到[0.0,1.0]范围内 B这样会导致纹理边缘的重复 C将小于0.0的数值设置为0.0 D图象在物体表面上不断重复,但是每次重复的时候对图象进行镜像或者反转(99)纹理坐标比一定非要在RGBA模式下才可以能使用()

★考核知识点:纹理的高级技巧

(100)void glTexParameteri 第三个参数类型为GL_REPEAT描述正确的是A A图象在表面上重复出现

B自动将超出[0.0,1.0]范围的数值截取到[0.0,1.0]范围内

C图象在物体表面上不断重复,但是每次重复的时候对图象进行镜像或者反转 D这样的模式在纹理边缘处比较连贯

★考核知识点:纹理的高级技巧

(101)对函数glTexParameteri边界截取类型描述正确的是()

A GL_CLAMP_TO_EDGE B CLAMP_TO_BORDER_ARB C GL_REPEAT D GL_CLAMP ★考核知识点:纹理的高级技巧

二、主观部分:(程序设计,简答题)

1关于现实字体的一段程序如下,运行截图如下,现有若干空缺,请完成填空。

我们完成创建字体的功能函数CreateFont()如下:

HFONT hFont;HFONT hOldFont;iBase=glGenLists(256);hFont=CreateFont(-24, 0, 0, 0,//高度 //宽度 //旋转角度 //定位角 //字宽设置 FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_TT_PRECIS,CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE|DEFAULT_PITCH, “Courier New”);

//使用字体名称为Courier New //保存之前的字体

hOldFont=(HFONT)SelectObject(hdc,hFont);//从系统下载的字体文件中生成这些位图

wglUseFontOutlines(hdc,32,96,iBase,0.0,0.2f,WGL_FONT_POLYGONS,gmf);//还原设备句柄为hdc,还原原来的字体类型 SelectObject(hdc,hOldFont);//释放资源

DeleteObject(hFont);2.关于二次曲面的一段程序如下,运行截图如下,现有若干空缺,请完成填空。

我们生成二次曲面的功能函数如下: //二次曲面的生成状态 GLUquadric *Quadric;//创建一个二次方程对象,指定这个二次方程对象的属性 Quadric = gluNewQuadric();//自动为二次表面生成纹理坐标 gluQuadricTexture(Quadric,GL_TRUE);//显示灯的列表 iLamp = glGenLists(1);glNewList(iLamp,GL_COMPILE);//激活纹理0地板的纹理

glBindTexture(GL_TEXTURE_2D,texture[2]);//绑定纹理

glBindTexture(GL_TEXTURE_2D,texture[2]);

2.如下一段程序,运行完成加载纹理的功能,现在有若干空缺,请根据上下文完成填写。

程序截图1 LoadTexture(){);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR

glPixelStorei(GL_UNPACK_ALIGNMENT,4);//绑定纹理

glBindTexture(GL_TEXTURE_2D,m_nBodyTex);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);//BMP文件的handle HBITMAP hBMP;//存储BMP的数据结构 BITMAP BMP;byte Texture[1]={IDB_MISSILE};//产生三个纹理

glGenTextures(1,&m_nBodyTex);hBMP=(HBITMAP)LoadImage(GetModuleHandle(NULL),MAKEINTRESOURCE(Texture[0]),IMAGE_BITMAP,0, 0, LR_CREATEDIBSECTION);

if(hBMP){ GetObject(hBMP,sizeof(BMP),&BMP);

//构建二维Mipmap gluBuild2DMipmaps(GL_TEXTURE_2D,3,BMP.bmWidth,BMP.bmHeight,GL_BGR_EXT, GL_UNSIGNED_BYTE, BMP.bmBits);//删除位图资源

}

3.如下一段程序,运行完成物体颜色和材质属性相关功能,现在有若干空缺,请根据上下文完成填写。DeleteObject(hBMP);

}//if

程序截图1 在进行光照和材质相关的计算时,需要先进行必要设置操作,我们需要进行如下操作:

{ glClearColor(1.0,1.0,1.0,1.0);voidInitScene()

//设置明暗处理模型 glShadeModel(GL_SMOOTH);//glShadeModel(GL_FLAT);//开启深度测试

glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LEQUAL);glClearColor(0.0f,0.0f,0.0f,0.0f);glClearDepth(1.0f);//使光源生效

glEnable(GL_LIGHTING);//设置环境光

GLfloatambientLignt[]={0.8,0.7,0.9,1.0};glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambientLignt);//设置材料属性,自身的反光属性 GLfloatShininess[]={80.0};//镜面强度,白色

GLfloatSpecular[]={1.0,1.0,1.0,1.0};//设置材质颜色属性

GLfloatMatColor[]={0.9,0.9,0.9,1.0};//光源位置

GLfloatPostion[]={1.0,1.0,1.0,0};//具体设置GL_FRONT_AND_BACK

//GL_FLAT

glMaterialfv(GL_FRONT,GL_SPECULAR,Specular);glMaterialfv(GL_FRONT,GL_SHININESS,Shininess);//设置光照模型

glLightfv(GL_LIGHT0,GL_POSITION,Postion);//给光源设置位置*/ glLightfv(GL_LIGHT0,GL_SPECULAR,MatColor);//给镜面光设置颜色 glLightfv(GL_LIGHT0,GL_DIFFUSE,MatColor);//设置漫反射颜色 //开启光照特征 glEnable(GL_LIGHT0);

}//endfnc 4.如下一段程序,运行完成雾化功能,现在有若干空缺,请根据上下文完成填写。

程序截图1 { //Get FPS void DrawScene()if(GetTickCount()-g_dwLastFPS >= 1000)

glClear(GL_COLOR_BUFFER_BIT);glLoadIdentity();//设置位图

glPixelTransferf(GL_RED_SCALE, 1.0);{

g_dwLastFPS = GetTickCount();

char szTitle[256]={0};

sprintf(szTitle, “ Current %d FPS”, g_nFrames);SetWindowText(hwnd, szTitle);g_nFrames = 0;

}//if g_nFrames++;*/ glPixelTransferf(GL_GREEN_SCALE, 0.0);glPixelTransferf(GL_BLUE_SCALE, 0.0);glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);glEnable(GL_BLEND);glFlush();}//endfnc //初始化操作

五、简答题(共15 分)

关于构建一个立体曲面的程序有如下截图,程序有部分功能空缺,请完成

//渲染场景 void DrawScene(){ //调用显示列表进行渲染

glCallList(drawlist);if(showCPoints){

//禁止纹理

glDisable(GL_TEXTURE_2D);

glColor3f(1.0f,0.0f,0.0f);

for(i=0;i<4;i++){

//绘制控制点

glBegin(GL_LINE_STRIP);for(j=0;j<4;j++){ glVertex3d(pCtrData[i][j].x, pCtrData[i][j].y, pCtrData[i][j].z);

}//for glEnd();}//for for(i=0;i<4;i++){

glBegin(GL_LINE_STRIP);for(j=0;j<4;j++)//绘制点

glVertex3d(pCtrData[j][i].x, pCtrData[j][i].y,pCtrData[j][i].z);glEnd();}//for glColor3f(1.0f,1.0f,1.0f);//启用纹理

glEnable(GL_TEXTURE_2D);

}//if glFlush();

}//endfnc

2.关于现实Bezier曲线的一段程序如下,运行截图如下,关于功能现有部分空缺,请完成。

intInitScene(){

glShadeModel(GL_SMOOTH);

glClearColor(1.0f, 1.0f, 1.0f, 0.5f);//设置清空颜色为白色 glClearDepth(1.0f);

//初始化深度缓存最大为 1.0f //开启深度测试 glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LEQUAL);glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);//开启求值器

glEnable(GL_MAP1_VERTEX_3);//设置控制点的类型,起始位置从0-100,控制点数目为4,跨度为3 //点的存储数组为B_Points[4][3]

} glMap1f(GL_MAP1_VERTEX_3,0.0f, 100.0f, 3,//起始 //终止范围

//点数目 iNumPoint,&B_Points[0][0]);//均匀分布网格,有100个单位,从u1到u2 glMapGrid1d(100,0.0,100);return TRUE;

boolDrawScene(){

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity();glTranslatef(0,0,-20.0f);inti;//设置点的尺寸大小为 10 glPointSize(10);//设置控制点为红色 glColor3f(1.0,0.0,0.0);glBegin(GL_POINTS);

for(i=0;i

{ glVertex2fv(B_Points[i]);}//for glEnd();return true;

}//DrawScene 3.关于实现光照效果对比的程序。左图为加光照,右边为未加光照。部分功能空缺,请完成

void DrawScene(){ GLfloat spotPostion[]={0.0,0.0,1.0,1.0};

//清空缓冲区

glClear(GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT);glLoadIdentity();

glPushMatrix();glColor3f(1.0,0.0,0.0);glRotatef(fRot, 1.0f, 0.0f, 0.0f);//使用灯光

glLightfv(GL_LIGHT2,GL_POSITION,spotPostion);glLightfv(GL_LIGHT2,GL_SPOT_DIRECTION,spotDir);glTranslatef(spotPostion[0],spotPostion[1],spotPostion[2]);glutSolidCone(0.05f,3.0f,15,15);glPopMatrix();glTranslatef(0,0,-6.0);//glRotatef(fRot,1,0,0);//绕y轴旋转60° glRotatef(60,0,1,0);//属性堆栈压栈

// glPushAttrib(GL_LIGHTING_BIT);// glDisable(GL_LIGHTING);

glColor3f(1.0f,1.0f,1.0f);glBegin(GL_TRIANGLES);//计算法线一

calNormal(vTrangle1,vector);glNormal3fv(vector);

glVertex3fv(vTrangle1[0]);glVertex3fv(vTrangle1[1]);glVertex3fv(vTrangle1[2]);glFlush();}//endfnc

第四篇:3D游戏设计

《3D游戏设计基础》教学大纲

课程名称:3D游戏设计基础 课程学分:3学分

课程学时:48学时(12周)课程安排:第3学期 课程性质:专业必修课

适用对象:动画专业本科学生

一、教学目的与任务:

本课程目的在于培养学生掌握3D游戏的设计基本技能,利用所学的知识能够进行3D游戏的设计与制作。

二、教学原则、模式:

1.理论与实践相结合

2.个别辅导与集体讲评相结合

三、教学要求及方法:

该课程为3D游戏的设计,主要通过对三维软件maya的学习,进行游戏场景的设定与制作,游戏角色动作的设定与制作,以老师带领学生进行相关实例训练为主要的教学方式。

四、教学内容与课时安排:

第一章 Maya基本界面和工具的认识(4课时)

1.Maya操作界面认识,包括对操作窗口、工具架、状态栏、时间栏、属性栏等区域的认。

2.Maya基本工具介绍,包括移动、旋转、缩放等基本工具的操作。教学重点: 对Maya软件有一个基本具体的认识,重点掌握Maya的基本操作,如对物体的移动、旋转、缩放等。

第二章 利用Maya多边形建模方法创建游戏角色(8课时)

1.多边形建模概述及其特点 2.多边形建模的基本操作讲解 3.男性游戏人物头像建模练习教学重点:

熟练掌握多边形建模的特性和方法,合理高效地进行多边形模型的布线。

第三章 利用Maya曲面建模方法创建游戏角色(4课时)

1.Nurbs曲面建模介绍

2.利用曲线进行简单的建模,如酒杯、茶壶的创建 3.利用曲面建模进行游戏人物头发创建 教学重点:

掌握Nurbs曲面建模的特性和方法,能恰当地选择相应的建模方法。重点掌握CV曲线的应用。

第四章 利用Maya细分建模方法进行游戏角色创作(4课时)

1.细分建模介绍

2.利用细分建模进行游戏人物角色创建 教学重点: 掌握细分建模的特性以及其和其他两种建模方法的差异。

第五章 游戏角色模型UV展开(4课时)

1.认识模型的UV 2.利用简单的正方体演示UV操作以及作用 3.对创建好的人物头像进行UV展开 教学重点: 对UV概念的理解,对UV展开的操作。

第六章 游戏角色与场景材质贴图讲解(4课时)

1. Maya基本材质的类型 2. Maya基本材质的属性

3.Maya中的贴图类型及其运用 4.为一处简单的场景添加材质贴图 5. 玻璃材质的讲解 教学重点: 对各种基本材质的理解和运用,对各种物体材质属性的认识,各种材质贴图节点的掌握。

第六章 游戏场景灯光渲染讲解(4课时)

1.Maya灯光类型及其属性的讲解 2.Maya基本灯光的具体设定操作讲解 3.为场景设定简单的照明效果 教学重点:

对灯光属性的认识和调控以及总体光效的把握。

第七章 游戏角色骨骼绑定与装配(8课时)

1.Maya骨骼的基本介绍和演示 2.为人物模型创建骨骼

3.骨骼命民的方法和注意事项 4.为骨骼装配控制器 教学重点:

骨骼方向的掌握、控制器装配的子父关系

第八章 游戏角色角色动作设定(8课时)

1.简单的动作演示

2.卡通人物循环走动作设定 3.面部表情动画设定

4.游戏角色常用动作设定制作 教学重点: 动作的流畅性以及动作的夸张性,面部表情的精确把握

四、实践训练(作业安排):

1.创建一个古代狩猎的游戏场景。

2、创建一个古代狩猎员的游戏角色人物。

《电脑设计(3D)》考试大纲

一、考试对象

修完课程所规定内容的美术系动画专业学生。

二、考试目的

考核学生对《电脑设计(3D)》的基本知识和基本方法的掌握程度和运用能力。

一、考试内容和要求

Maya基本工具和命令的操作,Maya模型的创建方法,灯光材质贴图的具体应用和操作,Maya动画模块的相关操作。

四、考试方法和考试时间

本课程为考查,五、评价标准

成绩由系评分领导小组统一评定,其成绩的评定为:考试成绩(70%)+平时成绩(30%)。

第五篇:专家教你怎样玩转3D

专家教你怎样玩转3D

众所周知,3D单选共分为1000注.组选210注(120注组6,90注组3).10注豹子.分为百位;十位;个位;而每个位置上都有十个号码,分别是0123456789.

合值,跨度,奇偶,012,遗漏,邻孤传,复隔中,类型.等等这些全是大家知道或能查到的知识,我就不在这里一一叙说.下面我要讲的是个人独家心得,望对大家有所帮助!

首先,我要讲的是变号:0 1 2 3 4

5 6 7 8 9

我上边所写为数字的对应号,也就是说:

0=51=62=73=84=9

大家千万不要小瞧这十个数字的对应变化.在3D的实战当中,他们起着主导作用!下面我将为大家讲解我个人是如何将3D进行分类的.首先,豹子000 111 222 333 444

555 666 777 888 999

拖拉机012 123 234 345 456

567 678 789 890 901

共计单选70注.

他们为第一类,一般情况下,可忽略不计.

第二类为组3,共90注组选,270注单选.买3D你首先就要判断开奖号码是组3还是组6?当然了,判断是否组3需靠经验.而经验是靠长期的实战总结出来的.

第三类,我称之为假拖拉机.共计组选30注,单选180注.046145569128137236039048589067157256239248347014069159178268367034359458017026125289379478第四类,我称之为假对.共计组选40注.单选240注.

127136389479038056146489057138156237049058238247059149167257168249267015169349358016025278368035279378459027126469045348

第五类,我称之为杂6.共计组选40注.单选240注.

028037235578029047245579129147246679139148346689013068158356023078258357

024079259457124179269467134189369468018036135568

以上五种类型组成了3D1000注单选.各位可细观察从有3D以来的历史数据,只要您用心,当不难断出当期开奖将是何种类型!

如您断出是假拖拉机,那好.30注组选60元钱您将中得160元.在3D正常出球的情况下,大多数时间里出的是假拖与假对.只要你勤于动脑,认真观察,用60元或80元去博取160元,相对来讲,还是很容易的!

怎样玩转3D(第二讲)奇偶

恐怕许多朋友看到标题后,全会想:奇偶还用你来说?但我这里所讲的,是我从另一个角度去看的,希望对您能够有所帮助.

3D开奖由0123456789十个数字组成.

其中0 2 4 6 8为偶数

1 3 5 7 9为奇数

而3D的开奖共分为:偶偶偶偶偶奇偶奇偶奇偶偶奇奇奇奇奇偶奇偶奇偶奇奇八种形态.

但开奖具体要出哪种形态?这就要进行全面分析了.即要考滤正常出号,又要考滤偏态的出现!要观察历史数据!我跟许多朋友说过:要手工抄写历史数据,实际上就是要他们加深印象!并在不断的抄写过程中去发现!付出总会有回报的!

下面我将要举例说明:如前期开奖为全奇,往往第二期马上要有全偶跟随.但要看一个月之内的数据.如一个月之内连开5次全奇,那全偶后再出全偶也不稀奇!

全奇,全偶单论.下面我要讲一下三变号.何为三变号?请看.如上期开奖为217.形态是偶奇奇,那本期开奖与之完全相反的形态:奇偶偶当不易出现!在这里我讲的只是概律.用在实战当中还需谨慎!所谓三变号即为:偶偶偶 变为 奇奇奇.偶偶奇 变为 奇奇偶.

偶奇偶 变为 奇偶奇.奇偶偶 变为 偶奇奇.

反之也一样.总之三变号这种形态在3D的开奖里出现的概律不高!在我们的实战当中当尽量不要当做重点去考滤.好钢要用在刀刃上!让我们尽可能去减少废票的出现!最大限度的少花钱多中奖吧!

关于奇偶连:0 2 4 6 8 0为偶连

1 3 5 7 9 1为奇连

请观察,3D开奖中,带奇偶连的号码占了很大份额!强烈关注!

怎样玩转3D(第三讲)组号

有许多朋友跟我说3D只中过组选,没中过单选.当然,这和人的性格有关系.我很佩服那些定位高手!能把每个位置的0123456789十个号码浓缩到2-3个,还能中奖,真的是了不起!打心里佩服!

下面我给大家讲讲我是如何组号的.首先,我是一个单码都不杀!合值不杀!跨度不杀!我只排除单选两码与组选两码的组合!并结合3D开奖的历史数据看大趋 势将要开出什么样的组和.我在 [原创]怎样玩转3D(第一讲)类型 里说了:我将3D分为五大部分.豹子号与拖拉机为第一部分.第二部分为组3.第三部 分为"假"拖拉机.第四部分为"假"对.第五部分为"杂6".

如你细心观察,当不难发现:3D游戏在开奖数据里还是有一定的规律可寻的.我为什么要将3D分为以上五个部分?就是因为这样的区分可以将3D的开奖数据很细统的划分开来.哪部分缺省,一目了然!

如:假拖长期未开,而你又看好要出.那好,假拖一共有组选30注.不打单,只打组.你只花60元全买也可中得160元,净利100元!至于说如何去看出来要出哪种类型?因每个人的看法不同,还需您自己去观察!

关于组号中遇到的选取胆码的问题,我是这样看的:有的朋友常常只定一个铁胆.其实,这样的做法是非常危险的!你看错了怎么办?那只有全盘皆输的后果!此法我个人认为万万不可取!

我并不是标新立异,我将0123456789十个数字这样划分.0路号码==0 3 6 9

质数==2 3 5 7

剩下的数==1 4 8

组号过程中,一般来讲,0369常跟随,2357应不断.1和8带着走.

如经你认真分析,看好要出假对的话,组和来讲只有05 16 27 38 49五种组和.再排除10注组3.组选上来讲只有40注了.再排除一下两码的 组和,那恐怕就剩不下多少注了!您断准了大趋势,您说这3D还有什么难的?造假之说更从何谈起?!多用点心吧!比一天到晚乱发牢骚要强万倍!

2005086--2005091六期当中的开奖号码全都缺少0路0369,很罕见!但您能说那就是假吗?那只是一个偏态的集中!092--098期0路号码又疯狂的下,那正是在弥补着086--091期开奖所产生的偏态!

还有就是,3D并不一定要天天去买,看不好的时候就不买.但一定要天天去关注!天天做分析!世上没有不劳而获的东西!

中奖密诀:参考他人 相信自己!

怎样玩转3D(第四讲)灵活运用

喜欢看试机号的朋友常常有这种感觉:时间不够用呀!试机号出来后,才急急忙忙看数据,找号码,您那样做,时间当然不够用!

关于如何看待试机号,各家有各家的法门.运用熟了自己的方法,只要管用,只要能中奖,就是好方法!但切记:不要因为试机号的出现,而全面的否定你原来的想法!如果是那样,你就真的来不急了!久而久之,你会厌倦试机号!你将失去重要的参考!

初玩3D的朋友常常这样看试机号:如试机号为123,那他就排除12,13,23组和.就排除和值6点,甚至和值16点,26点,就排除拖拉机,甚至排除012路组选!虽然说这种方法准确律也很高,但的确是走进了试机号的误区!

下面我将我是如何看待试机号的,与大家交流一下:首先,你要将试机号也做成号码走势图,要与开奖号对比!这样才能相对准确的排除合值.还有就是一定要看 机球走势图!如何看?各人眼光不同,当为仁者见仁,智者见智.最主要的一点就是:用试机号去断定当晚开奖号是否带奇偶连!此方法需自己去探索,去从图型与 图表中去掌握!因为这是长期实站的经验,不是三言两语就可说清的.如您能够用心去体会,您算算,你将排除多少注号码?

还有就是跟大家说一下开机号.每个彩票机的开机号各不相同,但规律照样有!你只需去长期关注一个彩点的开机号就可!将他记录,做成合值走势图,再把他是否带开奖号的规律祥细记录!也是很有帮助的!

试机号与开机号说了,提醒大家的就是:想中奖吗?想从3D上挣钱吗?如果想,那好,您就千万别犯懒!动手!动脑!指着管别人要号,靠他人中奖?你将永远有失落感!你将永远会说:3D有假!

怎样玩转3D(第五讲)包号与包和值

前文说过,我不包号,也不包和值.但我不反对任何购彩的形式,也包过和值.但现在回想起来,我只能说:我上了一大当!

包号的确很省脑!不用考滤和值,不用考滤跨度,更不用去考滤是出组3还是组6!但您想过吗?3D游戏是限号的!(不要说限号不公平,不限号更不公平!)在您包的同时,别人也在包!还有一点就是:您有多少后续资金?包着包着,资金链断了怎么办?!对3D了解不深的人会说:玩3D只要有钱就挣钱!真是天大的 笑话!

实例:论坛里有一女网友,玩3D包号和包和值,第一个月就挣了十几万!少吗?不少!但您接着看:在接下来的日子里,不 但挣的十几万赔进去,自己又拿出了五十多万!还是赔进去!里外里小七十万!弄得自己很不开心!看到这里,有人又会说:那是她不会包!我还真劝您:千万别这 样说!一个有脑做生意能挣钱的女人,她的头脑要比你灵多了!但那又怎样?还不是照样输在3D上?但她同时又是理智的!现在不包了!在以别的方法去玩着 3D,钱能不能捞回来单说,首先是心情好了,又能见到她的笑容了!

3D的记录不断的被它本身刷新着!就目前来讲,百位7;十位 3;拖拉机;09组和.又有哪一样不冷?有人说:我就包!我就不信它不出了!的确,该出的总要出!但我想问一句:要是再过100期才出,那也属正常!您还 包的起吗?!您这样做,第一是自己和自己较劲.第二您是在和钱过不去!说了这么多了,回到正题.到底应怎样包号与包和值?通过长期观察,并与各大3D高手切磋,得出以下结论:对于极冷的单码,和值与两码,不可包,只可防!请问:3D下一步,单码8会被打入冷宫吗?如真的冷下去,将又有多少人吃亏上当?!

还有一点最为重要的就是,对于那些包单码与包和值的朋友,如你正在包.请一定要牢记:要学会止损!该扔就得扔!否则会越陷越深,不能自拔!千万不要有如 此念头:快出了,我已赔进那么多钱,万一我刚不包它就出了,那多冤呀?您放心!该不出照样不出!您不包还有的是人包呢!

3D游戏不存在着人为做假!它是由计算机通过销售量来自动决定出号的!程序上来讲,它会根据当日销量及长期的销量来进行自动识别!不到返奖的时候它不会返奖的!

说到这里,您会问:你又如何得知这些的?实话跟您说,我不知!这只是我长期购彩得出来的心得!信与不信,只在于您的一念之间!

3D的开奖存在着漏洞吗?存在!否则就无3D高手一说了!但这要你细心的去观察!去发现!不要把3D这个游戏想得太简单,那样会赔钱!更不要把它过于复杂!那样的话,这个游戏对于你来讲,就毫无乐趣可言了!论坛里有许多软件高手,凭借你们的头脑,请换个思维方式!那样的话,攻克3D指日可待!成功在向我们招手!

怎样玩转3D(第六讲)心理战

其实3D也好,任何彩票都一样,运气与技术是一方面,但最关键的还是你的心理素质问题!不论做什么,只要你能保持一个良好的心态,冷静的去思考,大胆而又不是盲目的去抓住时机的话,大奖自然就会离你不远!

有些朋友在买彩前总是喜欢模拟作战一番,那样很好.但致命的缺陷就是模拟作战不等同于实战!心理的压力是完全不一样的!还有些朋友定位选号,每个位置上 5-6个号,开奖后说:我的定位有组选!您还真别高兴,单纯的来讲单选定位错就是全错!每个位置上5个号,组选就125注,250元钱.开出组6的话,您 中奖160元,算算您是赔还是赚?!也有些朋友每天买20-30注组选,中奖概律很高,但您想到后果了吗?三天不中,您就赔钱!五天不中,您就有压 力!10天不中,您就会产生厌倦之心!30天不中,您就会觉得彩票有假!但3D有假吗?没假!那只是您玩的方法不对!历史的经验告诉我们:只有中得单选才 能够做到真正的赢利!

来论坛注册的这一年多时间里,我受益非浅.沾了小马哥头像的光,不论岁数大小的网友都亲切的管我叫一声发 哥.也有更多的朋友将自家对3D的独门见解以短信的方式相告予我,在此我衷心的对他们说一声:谢谢!但更多的时候,我会回复他们说:直接发在论坛,独乐乐 不如众乐乐!但有时论坛的环境却无法使他们与大家真诚交流!在此我呼吁:看贴时请大家做到,对不捧,错不骂!更不要将自己不中奖的责任赖在他人身上!你那 样做,真的会使发贴的人很伤心的!

买3D以来,我发现了一个很有趣的现象:就是当每个人都看好同一个单码时,它往往就真的不会 出!这并不是开奖上会做假,而是开奖的数据在误导您!在您看好某个单码的同时,别人也同样在看好!遗漏固然很重要,但不要过分的去看重它!您懂得再多,也 斗不过程序本身的控制!还是从多方面,多角度的去观察,去思考吧!

3D本身并不难,只是我们人为的把它搞复杂话了.其实它就是 0-9十个数字所组成,你考虑的因素越多,就越中不了!为什么初玩3D的人很容易中奖?那是因为他头脑中没有想得太多!看好他就买,还就能中!为什么3D 游戏能够很快的红遍大江南北?那就是因为它会让初学者尝到中奖的甜头!又为什么3D这个小游戏能够让很多人倾家荡产?那正是它看似简单,实则很不一般的游 戏外表!不论您够买3D多长时间了,都不要掉以轻心!

说白了,3D游戏跟咱们玩的就是心理战术!并没有什么预测大师!只是那些 所谓的大师们概律要玩的好一些!如:连续5天最大号加上最小号之和尾在5以上,那他第六天就可坚决排除最大号加上最小号之和尾在5以上的!连续3天任意两 码相加不出现0369,那第四天就一定要有任意两码相加等于0369!这就是概律!很高很准的概律!

还是那句话,大家多动动脑,你也会发现更多的3D所谓的密秘!没什么神密的!

下载SYJ教你制作3D游戏19-22word格式文档
下载SYJ教你制作3D游戏19-22.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    3D效果图制作协议书

    唐山新天地二期及苑南楼 概念设计文本修改制作协议书 甲方 :电 话 : 传真 :MAIL :乙方:唐山首佳图文设计有限公司电 话 : 传真:MAIL: 根据《中华人民共和国广告法》,《中华人民共和......

    3D游戏美术要学什么?

    3D游戏美术要学什么? 3D游戏是相对于2D游戏而言,D就是维,3D游戏就是三维游戏,由于我们所处的现实空间是3D空间,所以3D游戏的可操作性更强,更具真实感,所以受到玩家的喜爱,现在市面上......

    3d游戏人物建模

    目前效果如图: 本人研究LOW POLY时间不长,到现在也就做过一个象样的东西。但想献自己一点微薄之力,写点东西,有不对的地方希望大家多包涵。尽管好多人说游戏公司对人物的要求比......

    如何开发网页3D游戏

    如何开发网页3D游戏 2013-03-20 22:02 129人阅读 评论(0) 收藏 举报 最近在网上突然冒出了一款3D的网页游戏,因为它使得我对网页中一些招人诟病的问题有了新的认识,让我产生......

    大神教你如何制作英文简历

    我说说英文简历,罗列几条吧:1. 在美国我还没有见过简历里附照片的,不知道为什么中文简历常常要附上照片,甚至是那些纯技术的岗位,很容易让人有外貌歧视的联想。2. 英文简历贵在整......

    教你制作个人简历表格

    教你制作个人简历表格 ★初始化页面 1. 新建一个Word文档,按“Ctrl+S”快捷键将其保存为“个人简历”。 2. 执行菜单栏上的【文件】【页面设置】命令,打开【页面设置】对话框......

    教你制作贺卡(推荐5篇)

    教你制作贺卡 时间:2009-09-21 09:44:48 来源: 作者:绿竹 点击: 560 教学目标: 1、让学生知道新年互赠贺卡是人们交流感情,表达美好祝福的一种方式。 2、通过手工制作新年贺卡,并......

    教你制作年夜饭[推荐五篇]

    最下饭的23道中国菜 分享 分享是一种美德 关闭华小 17:32分享 不错不错日后待我慢慢研究下~~挖哈哈!! 辣炒什锦藕丁 制作方法: 主料: 莲藕 火腿 青椒 豆干 辅料: 老干妈辣酱 酱......