一个小demo的开发日记(〇)

在大概两周(三周?)前,出于某些原因(w)我做了个小demo。(虽然因为各种各样的原因导致做它的时间只有一周多了…所以它还远没有完成OTL)

在目前看来,它主要的亮点啊啥的之类的东西大概可以用下面的(g)视(i)频(f)来代表w:

大概就是一个树木生长的过程,以及一个日夜交替(晚上的星星被gif几乎快压没了)。

(实际上才没这么点东西!但是没做完什么的TAT)

所用工具是Unity,不过为了性能全写的是Unlit Shader(按我的理解应该是不参与Unity5.x的GI(全局光照)。这个Unlit Shader就相当于Raw Cg shader);

也就是说相当于Unity只做了一个组织对象和场景的工作,光照计算和模型生成(尤其是树木)的部分需要手写。所以感觉收获还蛮大的w

(至于标题为什么是〇(音"ling"),嗯…今天太晚了就稍微写个目录好了再来填ww)

大概会分为这样几个部分:

  1. 树干,树枝(模型):
  • (现年代)3D几何体(模型 / Mesh / Geometry)的组成
  • 四元数(Quaternion)与旋转(只说如何用和简单的概念,不推导,太**多了)
  • 简单的分形模型,分形与植物
  • "样条线控制的"树枝,Perlin Noise,树枝之间的关系
  • SpeedTree与树枝上的重力和旋力模拟,树枝之间更美观一点的关系(经验模型)
  1. 天空
  • 天空盒(SkyBox),CubeMap映射,单个贴图的局限性
  • 瑞利散射,米氏散射,exp(x) (e的x次幂)在这种(散射/折射/透射…)计算中代表的含义
  • 有预计算的单次散射天空模型
  • 考虑了多重散射的天空模型与实际效果(这也是最终采用的)
  • 星空

3)树叶,草与光照

  • Unity中的SubMesh以及RenderTexture
  • NormalMapping,ShadowMapping
  • 植物的"透光"性
  • 协调日夜变化与环境光、太阳平行光颜色
  • 一个"抖机灵"似的大幅提升树叶层次感的"小把戏"

4)树(生长)和乱七八糟的:

  • 让分形"生长"
  • 贴图混合,让每个树枝尖端长出一片小叶
  • 网络与文件读写
  • 服务器端:(安利)Azure & node.js(实际上性能应该不会太好但是我只会这个而且这server也没什么好弄的) & REST(HTTP) Calls(GET / POST / …)

怎么感觉一写出来这么多呢…

嘛w总之慢慢填好了ww(弃坑预定(误

那最后就放几张图吧~首先是这棵树的进化过程(误wwww)

第一个奇怪的方方的东西是测试用的,不要在意hhh

Vertices是整棵树的顶点数,triangles是三角面数。上面的"Xth Iteration"代表这是第几次分型迭代之后的产物,一般次数越多层次越多(大概)。

下面的是结构,大概就像是这样(从左到右):

每个树枝就是一个方盒子

一个有方向有法线的方盒子

一个有方向,还把法线加一起求了个平均的顶点数是原来1/3的方盒子

圆柱体!

"样条线"控制,实际上是一堆大大小小的圆形截面之间连起来的结果(之后的都是它了)

(右面的经历了两次迭代"2nd Iteration",相对的左面做了三次。右面大概在4000点,10000面)

左面的加入了基本的重力。

右面的对重力进行了修改并加入了旋力(请允许我这么叫它)

左面的是上图右面单纯的加一次迭代的效果(就是右面那棵树的树枝,大概在1w~1w6点 1w5~2w5面左右。右面的是最终的渲染图,大概1w9点2w8面,记不清了)

长图:

(总感觉最后那个还颇有点油画感www)

然后是几张截图:(白天,日落,夜晚)

(我承认这个星空有点水。)

会填完坑的吗~…撒~那么有缘再会ww

(由于一些原因并没有下载链接和源码嗯wwwそれはすみませんでしたwwwwwww)

时间: 2024-10-14 08:45:44

一个小demo的开发日记(〇)的相关文章

一个小demo的开发日记(二)

时间倒退回2016年4月10日,这个工程刚开始的时候 —— 就不说做这个的原因和为什么要做个这个了.嗯…感觉好蠢. 一上来什么都没有.我决定把注意力先放到重点 —— 场景最中间那棵树上面. 在这个时候,我手里有一份Ogre(另一个游戏引擎,开源,无GUI)上的分形树.至于分形树是个啥,就先当成一个可以画出三维的树的程序好了. 然而我觉得用Unity能让我更快的完成这个东西,毕竟时间紧迫,离deadline只剩12天了.而现在我手上什么都没有,而且对Unity一无所知,简直…太糟了w 所以第一件事

一个小demo的开发日记(一)

啊~Re: 0怎么这么赞啊~ 啊~ ===================================================== 好吧我知道我很久没更新了. 这不重要!EMT! ===================================================== 嘛,进入正题嗯ww ? 一.3D几何体的组成 在进入正题之前,请允许我先说些关于-嗯-怎么说呢,基础的东西. ? 说到底啊,游戏里用到的这些场景. 它们都是什么? 它们怎么组成的? 它们又是怎么被画到

javascript 跟随鼠标移动的提示框的一个小demo

下面提供一种跟随鼠标移动的提示框的思路,方便在以后工作中应用,主要是应用到鼠标移动产生的数值来进行移动提示框的定位... CSS代码   .box{height:100px;width:100px;background:orange;position:relative;margin:40px;} .move{height:20px;width:20px;background:red;position:absolute;left:0px;top:0px;display:none;} HTML代码

jQuery 中 ajax 提交数据应用的一个小demo

举一个jquery中ajax的应用小 demo 便于以后的更多项目拓展 ,这里要注意的是保存的文件名问题 ... ajax02.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="form&qu

jQuery 中 ajax 请求数据应用的一个小demo

举一个jquery中ajax的应用小 demo 便于以后的更多项目拓展 ,这里要注意的是保存的文件名和文件图片路径问题 ... ajax01.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> ajax小例子 </title> </head> <body> <!--

模仿京东顶部搜索条效果制作的一个小demo

最近模仿京东顶部搜索条效果制作的一个小demo,特贴到这里,今后如果有用到可以参考一下,代码如下 1 #define kScreenWidth [UIScreen mainScreen].bounds.size.width 2 #define kScreenHeight [UIScreen mainScreen].bounds.size.height 3 4 #import "mainViewController.h" 5 6 @interface mainViewController

Cocos实战篇[3.4]——仿COC的一个小Demo总结

[唠叨] 今天结束了本学期任务最为艰巨的项目实训课程,由于项目组里其他成员基本都已经找到实习了,然后他们都去实习了.只留下我和一个小伙伴在一起搞项目实训的小游戏.经过一个月与小伙伴的配合开发,做了一个勉强可以玩的一个小游戏demo,因为平时其他课程也比较繁重,所以游戏做得非常烂~(>_<)~. 我们本来打算做一款类似COC.海盗奇兵.口袋侏罗纪.城堡争霸的城战类的单机Demo.结果--哎说多了都是泪啊,经验不足,吸取教训了. [经验教训] 由于时间比较紧张,加上自身也没有大项目开发的经验,所以

一周一个小demo — 前端后台的交互实例

这一周呢,本K在大神的指导下,完成了一个利用ajax与php文件上传处理相结合的一个留言板功能的小实例,下面就让本K来带大家瞅瞅如何实现这一种功能. 一.界面概览 首先我们来看一下这个小demo的具体效果. 这个demo中,主要包括了三个步骤,也分别对应了三个功能,分别是注册,登录与留言板功能.而这三个功能基本都借助了前后台交互的几种技术,下面,本K就给大家分别展示一下这三个功能实现的代码. 二.功能实现 1.注册功能与登录功能 1.1 代码展示 1.1.1 注册功能 (1)前段部分 <!DOC

原生JS写了一个小demo,根据输入的数字生成不同背景颜色的小方块儿~

昨天练习写了这个小demo,个人觉得通过设置定位元素left和top的值,来实现换行的功能,这种方法很巧妙~ 另外,如下代码中的随机颜色的获取,还请各位前辈多多指教:需要改进的地方:或者有没有更好的方法. 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <style type="text