[实例]3D测试-星间飞行3D版
gamemaker吧
全部回复
仅看楼主
吧务
level 13
q糖豆p 楼主
好吧,图文无关。之前有一个伪3D的版本(传送门 https://tieba.baidu.com/p/3583743647 )似乎星空背景感觉还不错,这次这个是在不开启GM自带3D效果的前提下,向真3D算法迈出的重要一步。
百度网盘 具体效果大家自己看咯。
操作说明:
W :前进
S :后退
A :左平移
D :右平移
空格:上平移
ctrl:下平移
鼠标:转向(按住鼠标则可进行Z轴转向)
F5:锁定/解锁鼠标
2015年09月24日 03点09分 1
吧务
level 13
q糖豆p 楼主
之前谁给的防反向,怎么用了之后不能运行了……
算了,放直接生成的吧,反正那些代码看得懂的自己也能写出来,看不懂的复制出去也用不了……
[无效] http://pan.baidu.com/s/1pJN49JH
2015年09月24日 03点09分 2
level 8
刚打开以为用了3d函数,后来仔细看了下说明,居然是伪的,
2015年09月24日 05点09分 4
比起上一次的伪3D,这次的z参与的是包含透视的投影算法,所以比起纯“伪”要“真”一些。
2015年09月24日 05点09分
投影什么的感觉算法很复杂,[汗]
2015年09月24日 06点09分
level 12
支持
2015年09月24日 05点09分 5
吧务
level 13
q糖豆p 楼主
@anheimfb
咱首先根据观察点的坐标、观察朝向参数,计算出原有的某个“星”在观察坐标内的坐标值。然后就是在观察点前面放一个虚拟的“屏”,将观察坐标投影到屏坐标上……其实投影这一步就是相似三角形的比例关系啊……
观察点在O,红线是屏,蓝线是视野范围,那么D点显示在屏上就是C点,咱懒得证明,不过显然△OAC∽△OBD,进而可知AC:BD=OA:OB。其中OB,BD直接能从观察坐标里计算得到,OA是制作虚拟屏的时候直接取好的,然后AC不就能算了嘛。
2015年09月24日 07点09分 6
哦 明白了 突然觉得只要用一个绘制纹理的函数就可以做个3d游戏了..
2015年09月24日 11点09分
level 15
前来顶糖豆~
2015年09月24日 10点09分 7
吧务
level 12
前来学习!
2015年10月04日 03点10分 10
1