Game Dev
文章平均质量分 82
谢灵枢
爱编程爱游戏
展开
-
Half Lambert光照模型
最近在学习Unity的着色器编程,发现和GLSL的原理差不多,现在立个贴记录一下学习的心得。Half Lambert是在Diffuse光照模型的基础之上进行改进的,将Diffuse光照计算后产生的光照值 x * 0.5 + 0.5,从而将Diffuse光照模型的值从(0--1)映射到(0.5--1),将物体处于低光照区域的表面也显示出来,改善了视觉效果。Diffuse Shading:原创 2014-03-19 19:14:34 · 1072 阅读 · 0 评论 -
Unity3D中的Shader
最近在学习Unity3D中的着色器编程,看了几个例子,但是对Shader的结构还不是很理解,于是上网搜索了一些资料,整理如下:1.surface shader的主方法原来是在fragment shader中调用的,使用一个inout类型SurfaceOutput参数参考链接:点击打开链接2.通过一个自定义的着色器实例解析着色器的结构,着色器代码如下:Shader "Custom/B原创 2014-03-22 17:49:21 · 1080 阅读 · 0 评论 -
Unity3d 中的 A*寻路
这篇文章翻译自Unity 4.x Game AI Programming这本书第七章在本章中,我们将在Unity3D环境中使用C#实现A*算法.尽管有很多其他算法,像Dijkstra算法,但A*算法以其简单性和有效性而广泛的应用于游戏和交互式应用中.我们之前在第一章AI介绍中短暂的涉及到了该算法.不过现在我们从实现的角度来再次复习该算法.A*算法复习在我们进入下一部分实现A转载 2014-08-11 19:07:41 · 1477 阅读 · 0 评论 -
[Unity3D]A*算法、导航网格、路径点寻路对比(A-Star VS NavMesh VS WayPoint)
在Unity3d中,我们一般常用的寻路算法:1.A*算法插件与贪婪算法不一样,贪婪算法适合动态规划,寻找局部最优解,不保证最优解。A*是静态网格中求解最短路最有效的方法。也是耗时的算法,不宜寻路频繁的场合。一般来说适合需求精确的场合。与启发式的搜索一样,能够根据改变网格密度、网格耗散来进行调整精确度。使用较好的地方:转载 2014-08-11 13:59:16 · 6352 阅读 · 0 评论 -
游戏引擎程序员养成
1. c++ Primer 英文版(第四或第五版)全部看完习题做完是必须的。渲染程序设计比较复杂,后期会用到c++的全部特性。c++学的越好后面越轻松。要看英文版,计算机翻来覆去就那么几个单词,基础打好了以后查stack overflow这些网站也方便。2. Introduction to 3D Game Programming with DirectX 11也就是经典的龙书,转载 2014-08-26 16:11:44 · 1086 阅读 · 0 评论 -
TexturePacker--A great tool!
TexturePacker是一个纹理打包工具原创 2014-09-11 16:09:10 · 859 阅读 · 0 评论 -
万向节死锁(Gimbal Lock)
在三维中常用的欧拉角坐标定向系统是用绕三个轴旋转的角度来表示物体的朝向(Rx,Ry,Rz)(注意三个轴是针对物体坐标系的)。如图1,物体处于世界坐标系(Xw,Yw,Zw)原点,此时物体坐标系(Xl,Yl,Zl)和世界坐标系重合(这里我使用右手坐标系。你也可以使用左手坐标系,无所谓,一样)。此时,规定物体的朝向为(0,0,0)。图1:物体的初始朝向 现在开始旋转物体,转载 2014-10-20 17:57:36 · 1561 阅读 · 0 评论