Minecraft
吴蕴泽
https://github.com/AdamWu
展开
-
类Minecraft方块游戏unity开发笔记1-地形(mesh合并)
地形的mesh合并,以已chunk大小(16X16)作为单位划分mesh大小。图为某chunk生成的mesh:以后地形动态加载、光照等都以此为单位运算和刷新。原创 2017-02-16 09:54:40 · 3267 阅读 · 1 评论 -
类Minecraft方块游戏unity开发笔记2-地形(动态加载、卸载)
地形的加载、卸载以16X16X16为单位,即chunk大小。 方式可根据可视距离计算每个chunk的远近来加载。原创 2017-02-16 09:57:20 · 2265 阅读 · 0 评论 -
类Minecraft方块游戏unity开发笔记3-光照算法
Minecraft的光照算法是简单的单光源光照,即一个单元(block)只能被一个光源影响,所以也就没有光源的叠加。由于太阳光会随着日夜变化而改变,所以太阳光(sun)和其他光源是独立开来的,即一个block会有一个sky光照量和一个point光照量(其他光源)。光照分为16个等级,即0-15,15为最亮,线性衰减,Minecraft按照0.8递减(衰减方式可自定义),如下:15 -> 100%原创 2017-02-16 09:59:13 · 1428 阅读 · 0 评论 -
类Minecraft方块游戏unity开发笔记4-光照算法(优化)
光照计算的优化主要在提前初始化所有block光照(skylight和pointlight),之前把光照的初始化和光照的更新、地形的加载同步进行,导致运算的重复性太高。比如初始化某一chunk的光照量,计算中,发现有光照影响到其他chunk,但是由于该chunk还未加载或是还未初始化(太阳光初始化),只能暂存该光源,等到chunk初始化好了,再重新算该光源影响,而且很大概率该chunk的光照又会影响之原创 2017-02-16 10:04:02 · 1830 阅读 · 0 评论 -
类Minecraft方块游戏unity开发笔记5-天气系统(昼夜交替、天气)
昼夜交替实现白天、黑夜的交替,太阳、月亮的移动,主要通过skybox的旋转,skybox的交替。或者采用unistorm等插件实现。天气系统(雨雪)由于需要遮挡关系(树下淋不到雨),所以采用一种动态面片生成算法。 主要根据玩家所处的block,设定一个范围(xz)和高度(16),范围内的block根据heightmap判断最顶面开始玩上生成一个面片。 每个面片是一个贴图uv动画,方向朝向玩家,如原创 2017-02-16 10:42:18 · 5438 阅读 · 0 评论 -
Seams on tiled mesh like Minecraft
由于texturealtas 原因,采样到邻边的texture,导致显示seam。解决方案三种:1、人为的在atlas边缘填充颜色,每个texuture border都添加。2、uv缩小offset(如offset=0.01f),原理同13、shader自己写多重采样,ref: https://www.reddit.com/r/Unity3D/comments/3egtc6/seams_on_pro原创 2017-02-16 10:50:57 · 394 阅读 · 0 评论