XJoshua's Blog

For those fleeting ideas and time.

Toon Shader 101

卡通着色入门

从荒野之息林克的卡通着色中,主要有三个部分: 多色阶着色(荒野之息是双色阶) 高光反射 边缘光 荒野之息的 Toon Shader 分析,来自Roystan的教程 Cel Shading 先从基础的漫反射开始: shader "Custom/ToonShader" { Properties {     _MainTex ("Texture",...

Jigsaw Piece Generate

随机拼图生成

最近做了一个拼图游戏,配合简化的代码,把拼图生成的思路整理一下。 准备 上面是三个参考项目的拼图界面,前两个是ios上的,后一个是PC上的微软拼图。可以看到前两个拼图块边界样式上变化比较小,后一个边界类型更丰富。立体感上前两个也差的很远。游戏性上来说,丰富的边界对拼图是很有帮助的,而光影塑造的立体感则让人觉得和实体拼图更接近一些。 当然不可能让美术把拼图每一小块都切出来,于是用sh...

Geometry Meadow 03: Interaction And Shadow

几何着色器花海 03:交互和阴影

交互 观察荒野之息可以看到,在林克走在草地上的时候,几何草向四周倒下: 那么只需要向shader传入物体当前的位置,和影响范围内的点,计算出倒伏的方向: // 传入交互的物体的位置 public void SetTargetPos() { Vector3 pos = TargetBall.transform.position; // Vector2 uvPos =...

Geometry Meadow 02: Terrain And Wind

几何着色器花海 02:地形和风

书接上文,之前绘制好了草和花的几何体,基于预设的Plane不能控制点的位置和密度,所以我们需要通过代码生成草的顶点。 地形绘制 & 密度控制 地形绘制主要参考了陈嘉栋的文章(参考资料3),通过读取高度图,创建Mesh。密度控制也类似,读取另一张NoiseMap,根据值来控制生成顶点的数量,少于一定数量则不生成。 public void CreateGrass() { ...

Geometry Meadow 01: Draw Flowers

几何着色器花海 01:绘制花

最近在ArtStation看到这样一张图,感觉很不错: 正好看到了一些关于几何着色器生成草地的文章,所以就想能不能用几何着色器来做个花海(Meadow:野花草甸)。 想了一下,仅仅还原这张静态图肯定不够的,生成花海主要有以下内容: 绘制草 绘制花 随机 地形 密度控制 风 与物体交互 阴影 LOD(划掉) 绘制草 「要有草」 仔细观...

Paintbook and SVG

Unity填色游戏和SVG的使用

源起 前些天组长喊我研究一下填色游戏,就是那种点击线稿图填充颜色的游戏。如果能把底图按照线稿区域划分成单独的区域,当然没有任何难度。但这当然不行,没有困难需要创造困难啊(主要是没有空闲的美术来做图…)。 在研究竞品的时候,发现他们的图可以放很大也几乎没有模糊,猜测可能是矢量图。搜索一下,发现有一个付费的SVG插件:SVG Importer和preview中的官方插件:Vector Gra...

Simple Tile Editor

简易 Title 地图编辑器

在研究 WFC 算法时(后来我觉得这个算法有点太言过其实了),发现了一个挺不错的 TilePainter Editor 脚本,用来做简单的关卡编辑器还不错,所以研究了一下。 地图是基于方形网格的,2D或者3D倒是无所谓。六边形网格的话需要进行一些修改。 光标和范围 首先是在地图的范围内绘制出光标的位置,当然其实不画也没什么关系。。。总之方便观察。 在地图范围生成碰撞体,在鼠标射线击...

3D Wave - Study Note

海面波浪模拟

本文译自“Catlike Coding - Flow - Waves” Catlike Coding系列是非常不错的入门系列教程,解释清晰配图充分,赞美作者。 注意 作者使用的是表面着色器,不过主要还是在顶点函数中修改。 注意原文中大部分向量是列向量,为了书写方便本文中以行向量形式书写。 1 正弦波 动态材质可以表现运动的表面,但是表面本身并没有移动。对于小的涟漪这样没问题,但...

GameAlgorithm 0x01 - Maze Creater

游戏算法01 - 迷宫创建器

源起 一直以来我都认为算法是编程中的灵魂,也许有人认为没有算法一样能够写出可以运行的程序。但对于写出好的程序,并认识到为什么好,没有算法的知识就是经验主义的瞎摸索。由于我又是个半路出家的游戏程序,计算机基础实在薄弱,想要在这个方面补充些知识,阅读像《算法》、《算法导论》这样的算法书是一方面,另一方面想要学习一些算法在工程中的实际使用(虽然也没那么工程)。于是,这个游戏算法的系列就是为此而生,...

2D Wave

2D 波浪

WARNING: UNDER CONSTRUCTION 内有猛犬,请勿入内 如果文中有错误或者遗漏,欢迎联系指正。