• 等级
  • 1791448 访问
  • 413 原创
  • 7 转发
  • 472 排名
  • 696 评论
  • 88 获赞

Shaders for Game Programmers and Artists(8) - Fog

简介在水汽充足、微风及大气层稳定的情况下,气温接近零点,相对湿度达到100%时,空气中的水汽便会凝结成细微的水滴悬浮于空中,使地面水平的能见度下降,这种天气现象称为雾。光线在照射到这些小颗粒的时候,方向发生改变,一些光被挡掉了,所有光的强度发生了改变,另一方面本不应该射向观察者的光线射向了观察者。 线性雾/指数雾/对数雾如今的显卡对雾已经有了硬件级别的支持,所以性能上的损耗非常小。通常硬件都会提供

2017-02-06 01:01:20

Shaders for Game Programmers and Artists(7) - Non-photorealistic rendering

边缘提取边缘提取有很多种,这里用的是屏幕空间的做法,首先把要提取边缘的物品用纯色绘制到一张rt上,然后用一个一个边缘检测的滤波器在ps中扫一遍。绘制纯色的的psfloat4 ps_main( float4 Diff: COLOR0 ) : COLOR { return 1; } 绘制完之后就像这样 边缘提取的滤波器称为Sobel filter。 边缘提取的ps如下sampler RT; c

2017-02-06 00:48:08

Shaders for Game Programmers and Artists(6) - 反射与折射

反射反射在上一篇的HDR中就已经用到了。简单说一下反射发生的原理就是光线打到一个物体的面上之后,一部分光被弹回去的现象,原理如下图 只要知道入射光线和发现,出射光线的方向就可以求出。通过这个方向对天空盒进行采样,就可以得到天空盒上的颜色了。在vs中计算出射光线的方向float4x4 view_proj_matrix; float4 view_position; struct VS_OUTPUT

2017-02-06 00:35:51

Shaders for Game Programmers and Artists(5) - HDR

简介颜色用8bit来表示就可以了,但是光强呢?High dynamic range is the science ofrecognizing the different intensity levels of light.Under normal rendering circumstances, wherethe average level of lighting is similar throu

2017-02-06 00:21:59

全面认识Depth - 这里有关于Depth的一切

作者:拳四郎链接:https://zhuanlan.zhihu.com/p/25095708来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Depth的由来从PerspectiveProjection 说起所谓的PerspectiveProjection 其实就是将顶点从view 坐标系下,转换到NDC下这里面包含了两个步骤,将view 坐标系下的顶点乘以透视矩阵,转

2017-02-05 22:56:12

Shaders for Game Programmers and Artists(4) - 热雾效果

一、原理先看下面的图产生的原理及其就是折射。深入探究的话,可以去搜搜波粒二象性,斯涅尔定律等等。当太阳照射地面的时候,靠近地面的空气会变得很热,热空气比较轻会往上走,冷的空气会往下沉。冷热空气由于有着不同的密度和折射率,就产生了折射现象。下面是折射的示意图这种特效可以用于喷气背包或者火箭升空时候火焰处空气扭曲的效果,也可以用于其他介质比如水或者刀光的处理。二、动手首先给场景添加一个天空球,Stea

2016-12-20 00:24:54

Shaders for Game Programmers and Artists(3) - DOF

DOF(景深)最简单的现象就是当你用眼睛聚焦到前景的地方,后面就会变模糊, 当用眼睛聚焦到远景的地方,前就会变模糊,相机也会有同样的情况,通过调节光圈和焦距就很容易出现景深的效果。如果要说景深形成的原理的话,可以用小孔成像来说一天,但是在图形学里面,要做的就一件事 Faking it!镜头前的东西被模糊,远离镜头的东西比较清晰Box filter 过于简单,高斯模糊需要两个pass,这里用一个稍微

2016-12-20 00:02:35

Shaders for Game Programmers and Artists(2) - Looking Through a Filter

渲染到 RenderTargetIn RenderMonkey, rendering to a temporary texture can be carried out using something called a render target. Render targets are a technique exposed by the different rendering APIs to a

2016-12-19 01:49:18

Shaders for Game Programmers and Artists(1) - First Shaders

一模型纹理加载工程结构如下二 UV动画三

2016-12-19 00:29:13

游戏开发中的程序生成技术

简介PCG是程序生成游戏内容的简称,它使用了随机或者伪随机数的技术,给游戏带来了无限的可能。相比于传统的由设计师将游戏世界中的一草一木都精心配制,PCG的方法是去配置一些生成的规则,然后由生成算法自动去生成游戏世界。在过去的时候,由于游戏主机和PC性能的限制,PCG的内容非常的简单,比如随机地牢或者游戏的地图,但近年来随着sandbox品类的游戏的兴起,比如风靡全球的Minecraft,PCG能够

2016-10-09 11:26:51

OpenGL进阶(二十一) - 文字渲染

经典文字渲染:位图字体在早期渲染文字时,选择你应用程序的字体(或者创建你自己的字体)来绘制文字是通过将所有用到的文字加载在一张大纹理图中来实现的。这张纹理贴图我们把它叫做位图字体(Bitmap Font),它包含了所有我们想要使用的字符。这些字符被称为字形(Glyph)。每个字形根据他们的编号被放到位图字体中的确切位置,在渲染这些字形的时候根据这些排列规则将他们取出并贴到指定的2D方块中。上图展示

2016-10-07 12:02:14

基于分形的山脉河流生成

自相似所谓自相似,是一种尺度变换下的不变性(scale-invariance),即在不同尺度下观察分形可以看到近似相同的形象,若把整个对象的局部放大,再把局部的局部放大,都可以看到相似的结构特征。但是这种自相似并不像整形的相似那么严格,允许相似中的不相似,不需要也不可能完全相同。比如,科赫曲线,整体是闭合的,但任一部分都不是封闭曲线。分形自相似意味着部分与整体有一样的复杂性:一样曲折、琐碎、纷乱、

2016-10-07 11:49:56

Minecraft源码分析(6) - forge环境配置

OS Windows10 64bit1.Java 最好在1.8以上,这里用的jdk-8u71-windows-x64.exe,下载好之后直接双击安装,安装好之后命令行运行java -version2.gradle从官方网站获取最新的zip包 http://www.gradle.org/ 2.将其解压并配置环境变量指向gralde目录 如 %GRADLE_HOME%=E:\yourparh\grad

2016-09-29 22:20:40

Minecraft源码分析(5) - 饱食度

介绍介绍饥饿(Hunger)是一个在冒险元素更新中新增的一个游戏机制。在更新之前,玩家食用食物会直接回复生命值。现在,食用则会回复饥饿值,一种随着玩家的不同行动而降低的数值。饥饿条位于屏幕下方玩家的生命值的旁边,表示为10个火腿。当玩家在疾跑时,玩家的饥饿值将会下降的很快。当饥饿值变成6或者更少时,玩家便不能奔跑了。在和平模式下,饥饿值并不会减少,但是其对于玩家生命值的影响并没有消失,并且在游戏中

2016-09-29 21:58:03

详解MVP矩阵之ProjectionMatrix

简介透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。 具体的理论推导过程可以参考下面的几个Link,深入探索透视投影变换深入探索透视投影变换(续)OpenGL TransformationOpenGL Project

2016-09-29 21:39:40

使用Unity的Standard Assets进行原型制作

环境Unity5.3.5f1Windows 64bitAssets 导入首先导入Unity3D官方的一些Asset  如果没有这个菜单的话,就是没有安装Unity Standard assets包,去官网下载安装一下。  导入之后可以先用prototyping下面的prefab搭建一个场景先   随便搭一下,就像这样  FPS Contro

2016-09-27 01:57:01

OpenGL进阶(二十) - 绘制一个长方形和一个三角形

简介先看最终效果今天要学习的重点是怎样在场景中绘制两个(或者以上的)物体,方框的绘制方框其实是由两个三角形组成,看一下VBO, VAO, EBO的定义GLfloat vertices[] = { 0.5f, 0.5f, -1.0f, 0.5f, -0.5f, -1.0f, -0.5f, -0.5f, -1.0f, -0.5f, 0.5f, -1.0f }; GLuint indices

2016-08-11 22:04:03

Unity中UICamera设置

默认状态下创建的UGUI的原点和世界坐标的原点是重合的,这样其实非常不方便。解决方法就是创建一个Camera专门用于绘制UI。具体步骤如下:1.新建一个Camera,参数如下尽量拉到一个比较远的位置Canvas需要设置一下Canvas Component这下UI就不会和场景中的物体有重合了。

2016-08-10 01:16:53

Muli3D源码分析(1) - 框架概览

Muli3D简介Muli3D是一个平台无关的软渲染库,实现了渲染流水线的特性,代码可读性高,模块性好,很适合去做一些原型或者研究一些新的特性。 编译环境Window 64bitVS2015Muli3D 0.8 https://sourceforge.net/projects/muli3d/用VS2015打开项目,随便找个工程进行编译,爆了下面的error. 链接器工具错误 LNK2026 XXX模

2016-08-01 13:18:29

快速多人游戏(5) - 示例代码和Demo

这是一个简单的C-S架构的实现,用来证明这一系列文章里的一些观点。如果你没有阅读过之前的文章的话,下面的内容对你并没有什么意义。 代码是JavaScript写的,都包含在这个网页里,不超过400行,并且包含了很多的注释,这也证明了你如果理解了其中的概念,实现它是相对简单的。

2016-06-02 22:05:25

博客专家

拳四郎

拳四郎
关注
  • 网络游戏/攻城狮
  • 中国 广东省 深圳市
奖章
  • 博客专家
  • 专栏达人
  • 持之以恒