自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 修复grabpass制作的折射在水面以上也会扭曲的问题

之前被问到如何修复由于grabpass采样制作的水体折射问题:如上图,这是一个浸没在水面的立方体,由于获取grabpass会同时获取水面上部分立方体的图像,因此在扭曲的时候会将立方体上半部分进行扭曲。我的思路是通过对比深度图来确定是否有物体位于水上,水上的部分势必会遮挡住水面,因此深度值应该更小。既然我们能在grabpass图上通过偏移能采样到立方体,那么在深度图上同样能,下面是未经过偏移的深度采样:fixed depth =LinearEyeDepth(SAMPLE_DEPTH_TEXTURE_P

2020-08-14 17:53:35 506 1

原创 shaderlab实现水体(折射、反射、深度检测)

之前B站Unity官方发布了一个URP制作水体着色器的教程视频,我试着将它移植到shaderlab中,并增加反射、折射等效果。深度检测首先是深度检测。如果直接渲染水体材质,就无法体现深水区和浅水的明暗变化。(图片来源)为了营造这种明暗变化,需要读取相机深度图还原深度,然后同当前坐标对比,已确定水深。我们首先使用以下代码读取一下摄像机深度图:camera.depthTextureMode |= DepthTextureMode.Depth;这样,在shader中通过uniform sam

2020-08-08 17:24:05 2662

原创 动态草地的Shaderlab实现方法

最近游戏《对马岛之魂》发售了。其中的草地特动效十分先进:(图片来自网络)于是我也萌生了写一个动态草地的shader草模型现如今的许多手游甚至端游的草地考虑到硬件消耗,常常把草做成星形或者广告牌草地(图片来自网络)但是这样的草地很容易露出破绽,效果也不是特别好,于是这里我让每根草都拥有单独的模型。实际上更好的方法是做多段的长方形,然后使用mask贴图指定草地形状,这样可以使草地形状更加圆润。然后视情况调整、套用这篇文章中的Maya脚本制作出草丛簇。完成模型的制作。草地动效实现草地的动

2020-08-06 15:21:48 1516 1

原创 C++实现简单读取Obj格式文件

obj文件解读我们先制作一个同时具有三边面和四边面的几何体,保存为obj格式后用记事本打开。打开后记事本内容如下:# This file uses centimeters as units for non-parametric coordinates.mtllib 1.mtlg defaultv -0.500000 -0.500000 0.500000v 0.500000 -0.500000 0.500000v -0.500000 0.500000 0.500000v 0.500000

2020-07-19 19:37:11 10376 1

原创 使用raymarching实现体积雾

前段时间在学习rayMarching技术,看到许多大佬搞的体积雾。我也做了一个简单的。RayMarching原理RayMarching(光线步进)严格上来说应该是后期的一种。一个简单的实现是在屏幕上绘制球体:从光线原点射出光线,先以原点为中心调用一次距离函数,计算出此点到球形表面的最短距离。如果小于设置好的误差值,就视为接触到物体,返回距离值。如果判断没接触到,则沿着光线向量前进刚刚计算出的距离值得到新的圆心继续求距离,直到判定为接触物体。如果前进步数过多,超出设定最高步数或者前进距离超出最远距离,就

2020-07-17 12:35:51 1566

原创 Unity制作扫描效果

一个笔试中遇到的题目,完成一个以主角为中心的扫描效果。下图是我完成的效果图。主要功能是按下v键,以场景中的角色或者摄像机为中心发出扫描圈,路过的有效目标被高亮且透视。使用了三个脚本和一个Shader完成效果。脚本实现思路是ScanCenter脚本监测按键,并且完成切换摄像机和判断是否激活或者重置扫描器。激活的过程中将此脚本所在Object的世界坐标传入扫描器。void Update(){ if (Input.GetKeyDown(KeyCode.V)) { if (scanCamer

2020-07-17 12:34:19 3242 3

原创 疫情在家作了个场景

疫情原因在家,做一个场景项目。同时学习一下unity的HDRP渲染管线。建模部分建模直接使用maya拉出房子,因为主要是学习unity,就不制作高模了。材质制作材质制作使用到了substance designer。石头材质石头材质一共制作了两个。另外一个是白色改色版,就不放出来了。地砖材质木纹材质墙砖材质本来还做了一个水波纹贴图,但是和场景不是很搭,最后没用上,就不放上来了。绘制贴图使用substance painter绘制贴图shader gragh绘制流动水纹理主

2020-07-17 12:33:03 166

原创 Unity动态环境映射

使用C#脚本和shader实现动态环境映射shader编写反射先上代码Shader "Custom/Reflection"{ Properties { _Color ("Color", Color) = (1,1,1,1) _ReflectColor("ReflectColor",Color) = (1,1,1,1) _ReflectAmount("ReflectAmount",Range(0,1)) = 1 _Cub

2020-07-17 12:28:45 661

原创 C#编写r软渲染窗口

之前使用C#编写了一个立方体的渲染窗口。效果如下:粗糙地实现了一个立方体基本漫反射和全局光。让立方体随时间旋转。本文主要讲一下摄像机部分的代码,和一个编写过程中的小问题。摄像机类摄像机属性private double posX,posY,posZ;//摄像机位置private double xAngle, yAngle, zAngle;//摄像机旋转角度private Vector4 xAxle, yAxle, zAxle;//摄像机坐标空间的下x、y、z轴在世界空间中的表示private

2020-07-17 12:27:27 276

原创 shader语义绑定问题

title: shader语义绑定问题date: 2019-06-24 22:50:47tags:一个关于shader语义绑定的问题学习shader语言的时候根据教程编辑了如下代码:Shader "Custom/NewSurfaceShader"{ SubShader { pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag void vert(in f.

2020-07-16 17:44:51 325

原创 第一个shader代码

title: 第一个shader代码date: 2019-06-22 22:49:16tags:学习shader第一天!刚刚开始学习unity着色器写个博客记录一下。人生中写的第一个shader:Shader "Skin/test2"{ Properties{ _MainTex ("Albedo",2D) = "white" {} _Color ("MainColor",Color) = (1,0,0,1) } SubShader { .

2020-07-16 17:42:20 180

原创 大学作品集

title: 大学作品集date: 2019-09-20 15:25:09tags:室内设计这张渲染图是刚刚学习3dmax和vray的时候的作品。有点瑕疵。手枪建模一个手枪的建模,是我学习maya和zbrush的时候的学习作品。~~准备等学习完Substance Painter之后再上色。~~其他作品...

2020-07-16 17:41:40 200

原创 快速排序实现代码

title: 快速排序实现代码date: 2019-06-11 21:17:47tags:快速排序代码:其中insertionSort插入排序可以使用副任意简单的排序算法public class QuickSort <AnyType extends Comparable<? super AnyType>>{ private final static int CUTOFF = 4; public static <AnyType extends Comparable.

2020-07-16 17:37:38 145

原创 希尔排序实现代码

title: 希尔排序实现代码date: 2019-06-11 21:40:13tags:简单的希尔排序代码:更加优秀的增量序列是9*4^i-9*2^i+1和4^i-3*2^i+1形式排序出的数组序列public class ShellSort2 <AnyType extends Comparable<? super AnyType>>{ public static <AnyType extends Comparable<? super AnyType&gt.

2020-07-16 17:37:08 231

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除