Skip to content

Opengl 模仿MineCraft

字数
439 字
阅读时间
2 分钟
更新日期
4/7/2018

在学游戏编程的时候老师布置的作业就是写一款游戏,我想来想去,觉得模仿我的世界还是很好玩的。

比较坑的是我们图形学学的opengl现在是过时了的,看网上的教程API都大更新了。只能找到一两个以前的文章的来参考。目前完成图

360截图20180407205526623.jpg

前序

这也是会是一篇长期更新的文章,因为比较是不断学习不断完善的过程,所以记录一下子,也能给后来人一些参考。

环境使用的是opengl + vs2017

编写语言是c++

过程

既然要模仿MineCraft,应该先学会一些基本操作,我学习的思路是

1.绘制一个方块

2.然后多个方块

3.给方块贴图

4.绘制出雏形

5.绘制人物

6.绘制一些物体

7.人物动作

8.鼠标动作

暂时想到这些,目前我的状态是5,后面学习后在继续更新

吐槽坑

1.jpg

绘制一个方块还是比较容易的,之后就比较坑了,首先弄不清楚opengl的3d坐标系转换,摄像头如何调整,投影图透视图什么的一个一个编译测试,搞了好久天。然后绘制多个方块写算法等等,比较伤脑筋。还有之前说的资料不详细,可能中文不详细,英文又没耐心看 = -

未来

目前模仿的还比较粗糙,后续会加上灯光,雾等等的东西,敬请期待吧

撰写

布局切换

调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。

全部展开
使侧边栏和内容区域占据整个屏幕的全部宽度。
全部展开,但侧边栏宽度可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
全部展开,且侧边栏和内容区域宽度均可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
原始宽度
原始的 VitePress 默认布局宽度

页面最大宽度

调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。

调整页面最大宽度
一个可调整的滑块,用于选择和自定义页面最大宽度。

内容最大宽度

调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。

调整内容最大宽度
一个可调整的滑块,用于选择和自定义内容最大宽度。

聚光灯

支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。

ON开启
开启聚光灯。
OFF关闭
关闭聚光灯。

聚光灯样式

调整聚光灯的样式。

置于底部
在当前鼠标悬停的元素下方添加一个纯色背景以突出显示当前鼠标悬停的位置。
置于侧边
在当前鼠标悬停的元素旁边添加一条固定的纯色线以突出显示当前鼠标悬停的位置。