自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)

原创 [Houdini+UE4]程序化搭建带有天气的场景

雪雨普通程序化构建的场景(houdini+blender+sp+sd+ue4),所有模型都是自己制作的。Demo下载地址: https://pan.baidu.com/s/12zFLGpAKkHKGf2eATbNoGw 提取码: gmky**渲染思路:**在houdini中对顶端建筑进行顶点着色,根据法线值来确定哪些point(有插值过渡)或vertex(色块)需要着色。引擎中统一通过一个材质实例来控制所有物体的雪度和湿润度。...

2020-08-24 10:43:53 118

原创 OVRlipsync嘴型匹配技术在UE4的应用

OVRlipsync在UE4中的测试 官方文档:https://developer.oculus.com/documentation/unreal/audio-ovrlipsync-using-unreal/此插件可用于实时模拟嘴型,或模拟指定音频的嘴型。使用:使用建模软件制作几个基本口型的变形(MorphTarget)(unity里叫blendshapes)(blender里叫...

2020-07-15 10:12:40 284 13

原创 个人美术相关作品

毕业设计绝赞制作中。

2020-04-17 09:49:23 118

原创 [Houdini]程序化城市生成--低模

这次是把缆线系统和程序化城市生成结合起来了。

2020-08-06 19:00:06 103

原创 [Houdini]程序化构建缆绳系统

可以根据生成新的曲线点增加能量柱和之间的缆线。随机能量柱随机数基于curve的PT(顶点序号)生成的。随机的bool盒子位置,尺寸。使用bool时导出group,进行着色。缆绳制作使用convertline节点,把每段线转化为单个图元(primitve)。使用for循环遍历图元对每个图元resample使它最大分段为2在transform节点中,grouptype改为point,group填1(因为经过分段后0,1,2,1为中间顶点),更改y轴,下拉再次使用resample,更.

2020-08-05 11:29:18 48

原创 [UE4]风格化渲染

本篇思路是基于后处理实现的。获取光照结果:由于diffuseColor*(光照计算)=最终颜色又得益于ue4是延迟渲染,mrt可以存储许多缓冲信息,故在后处理获取diffuseColor很简单。因此可以反推初光照计算结果。最终颜色/diffuseColor。增加菲尼尔在后处理获取法线图,即可进行菲尼尔计算。ramp光照结果和菲尼尔可以分别用张贴图进行映射,菲尼尔也可以使用step函数进行。描边,外粗里细外描边使用的是模版缓冲计算得来的描边,内描边则是常见的深度图边缘检测。为了使得仅..

2020-08-04 09:24:47 190

原创 [UE4.25]渲染流程梳理

看了下网上的增加光照模型的教程,都是4.1x版本的,我在下载4.25源码后发现许多文件发生了改变,故自己摸索了4.25的渲染流程,和相关概念。

2020-08-04 09:02:42 177

原创 [UE4]“咋瓦鲁多!”

提供思路:1.屏幕空间构建遮罩2.sin计算遮罩值(因为ue4材质节点中的sin周期为1,故可以利用0,1之间的值来映射为完整的正弦曲线并且有良好过渡)3.扰动偏移,基于0-1之间的值,求x到指定某点的距离。基于以上思路还能实现许多变体:超声波攻击!...

2020-07-12 15:23:57 76

原创 [UE4]多层级色彩火焰描边

效果如上思路分享:1.火焰流动:使用流动图(可使用flowmapPainter制作),流动早报贴图的uv2.火焰内实外虚:使用菲尼尔效果叠加.3.火焰跳动:躁波流动采样,顶点动画。4.多层级色彩:纹理剪边(即:把原纹理乘上某个系数,在和原贴图做差,就能得到该纹理的剪边)+两层菲涅耳。5.定向跳动:由于火焰都是往上跳动的,所以我们把物体的空间法线点乘向量(0,0,1)就能得到一个-1到1的值,在球顶此值为正,球底为负,可以此做跳动的遮罩。...

2020-07-11 17:41:32 107

原创 [Unity]水面模拟

效果如图分享思路GrabPass+_CameraDepthTexture1.获取深度图2.使用ComputerScreenPos获取顶点的屏幕空间坐标srcPos(四维),分量xy/w分量得到正确的顶点屏幕坐标,用于采样深度图。3.使用srcPos的w分量和深度图做差,以此得到一个固定的插值。4.一方面模拟深度,另一方面需要模拟边缘水花,都是相同的思路。5.使用smoothStep...

2020-05-06 14:34:22 171

原创 [Unity]基于深度缓冲实现扫描效果

如果想看视频的话,可以观看我在B站翻译的教程:BV1vt4y1U7HV实现扫描效果不可能对每个着色器都去增加一段shader代码来实现扫描效果,这是不合理的,不利于项目扩展。所以正确的做法是对于屏幕中看到的像素去做处理,也就是像后处理一样,把rendertexture进行处理后在渲染在屏幕上。获取深度缓冲在获取当前渲染的摄像机组件后,对其成员depthTextureMode 赋值就能获得...

2020-04-13 23:06:02 401 1

原创 [unityshader]制作能量护盾以及简单互动

效果图这是在观看b站av70029953后总结的经验。因为csdn有图片大小限定,所以适当减去了点。图中效果为:能量护盾的收缩,以及与外界collider的碰撞交互效果。准备模型(BLENDER)使用Blender制作一个棱角球。点开插件面板添加一个tissue插件添加后,点击插件面板这个按钮就能得到这样的网格了重置uv网格由五边面和六边面构成,调整uv布局选中所...

2020-03-15 12:03:14 393

原创 [unity]使用Unity粒子系统制作跑尘

效果如下要使用到一张自制的

2020-03-13 21:40:31 304 1

原创 WaveSDK vivefocusplus UE4开发记录

这几天在做ue4项目,用惯了unity再用ue4真的不适应,各种吐槽,开发项目的大多时间都消耗在编译材质,打包,不过不得不说,Ue4的蓝图编程模式非常的好用,相信以后这种节点式的开发会成为主流,虽然个人作为程序员有点感觉自己之前学的白学了一样,但软件行业的发展确实是这样,越来越简单,就像以前估计游戏公司招人都是招聘有opengl,c++,图形开发经验的,现在大多招的都是unity,ue4,这也是种...

2020-03-11 11:17:03 188

原创 [unityshader]产生像素后处理效果

如图,注意(这个shader并不是放在人物身上而是放在一个面片上,透过这个面片去观察角色)后处理其实就是,使用Grabpass通道获取到当前屏幕图片,再把这张图片存入sampler2D贴图属性中。然后在shader中进行处理。像素化的的思路就是降低uv精度。把0.1 0.2 0.3 0.4的数据变成0.1 0.1 0.3 0.3这样的数据我们可以采用取整的思想来对精度进行降低,把原Uv的...

2020-03-01 13:32:38 217

原创 [UnityShader]使用shader产生全息投影的效果

结果图全息投影技术重点在于模型要产生不依赖与模型uv的纹理效果。计算顶点在屏幕中的位置是个不错的选择。使用ComputeScreenPos(i.vertex);函数可以获得顶点在屏幕中的坐标,以这个坐标来采样,产生的效果就相当于当前的屏幕盖了一张纹理图。同时,如果想要产生随视角变化的纹理,可以考虑使用模型在世界空间中的坐标的两个值来做uv坐标,这同样是脱离模型uv的。为了让效果更加生动,采...

2020-03-01 13:00:14 521

原创 [UnityShader]多Pass处理透明度

在shader中想让物体出现透明的地方有两种思路。把物体的渲染队列设置为transparent,此时的物体将会在所有不透明物体之后渲染,从而保证正确的渲染结果。然后我们使用Blend指令来把原颜色缓冲区的颜色乘上当前物体的a通道值,来进行混合。使用Clip指令来对物体的像素进行裁剪。Blend指令每经过一个pass物体就会产生一个临时颜色缓冲区(假设当前为M,上一个颜色缓冲区为N)。...

2020-02-28 22:00:33 380

原创 [Unityshader]在unity中尝试实现三渲二的效果(四)

上图!(都出到四了,为什么不一次更新完?细心的小伙伴就会发现,随着视角的下移有些区域发生了变化!没错,就是暗部区域。这次我们为shader加上了与二次元风格相符的菲涅尔现象。崩坏3游戏中也有这个现象,头发的高光贴图就是通过菲涅尔来遮罩的,物体暗部也有体现。我用下面一张图来简单的说明下发生了什么变化。把原来获得到的漫反射值加上菲涅尔值再去截取,就能得到随视角产生变化的阴影区域了。...

2020-02-21 20:14:14 815

原创 [Unityshader]在unity中尝试实现三渲二的效果(三)

这次进行的改进如下:多光源处理增加光照贴图的可控性要进行多光源处理,我们需要使用前向渲染,因为这样才能访问到正确的光照信息。当Unity中有多个配置为重要(important)的光源时,Unity会根据这些光对物体的影响程度(距离,强度等)来对这些光源做一个排序。对于最重要的那个光源(点光源除外)将会在设置LightMode为ForwardBase的那个pass中进行。而对于其它的重...

2020-02-20 22:59:33 716

原创 [Unityshader]在unity中尝试实现三渲二的效果(二)

在上一个文章中,使用的shader仍有可以改进的地方。上一篇中并没有没有对硬边缘做可调整的操作(可以通过参数调整过渡值),同时因为我们不需要对高光进行过渡处理,没有对高光值做Power处理,这会使得高光值的变化不够满足需求,这次加上,同时,我想让渲染效果更佳漂亮,于是决定对于明暗交界线处的颜色增加饱和度,有很多二次元的画师的画中都有表现这一点。我们看看这次的完成效果。(由于录制gif图的话,很...

2020-02-19 21:13:13 823

原创 [Blender]个人学习记录

Blender学习1.27tab键 模式轮盘~视图轮盘shift+a 新建物体ctrl alt Q 打开四视图0 键 进入摄像机视角ctrl 3 平滑细分当前物体ctrl p 设置父子关系pagedown machintool插件面板g,s,r之后若想延轴操作,按x/y/z,延平面操作按shift +x/y/zalt+s/g/r各变换归零物体移动后可以使用ctrl+a来进行...

2020-02-18 18:48:17 368

原创 在Unity基于Json数据实现背包系统

实现效果假定我们已经从实现了json存为字典,并可以通过管理类获取实体的操作。若有疑问可参考我的另一篇文章:https://blog.csdn.net/qq_41083853/article/details/104369853了解RectTransform组件基础知识UI在CANVAS中有两种布局方式,两种方式显示的数值是不一样的可根据如图方式切换:绝对定位Posx,y,z就是指...

2020-02-18 12:01:08 231

原创 在unity中实现json数据的通用读写

使用LitJson插件LitJson使用只需要把ListJson.dll拖进Unity Assets文件夹中即可在代码中引用。我们先简单封装一下Litjson以便更方便于Unity使用。using System.Collections;using System.Collections.Generic;using UnityEngine;using LitJson;//引入插件usi...

2020-02-18 10:27:15 445

原创 [Unityshader]在unity中尝试实现三渲二的效果

文章目录在Unity中实现三渲二,我尝试从两个途径去实现,一个是用Unity官方的可视化着色器插件shadergraph实现一.ShaderGraphshadergraph搭建设置请自行百度最后将三个模块得到的颜色信息加起来,就能获得结果了。二,使用shaderlab即编写shader代码,自由度很高,就是上手有点难。在Unity中实现三渲二,我尝试从两个途径去实现,一个是用Unity官方的可视...

2020-02-17 22:32:08 1699

原创 OpenglC++学习笔记

文章目录OpenGL学习19.10.13OpenGL环境配置OpengGL是什么?GLFW预编译文件和源代码文件GLFW配置CMAKEGLAD和GLEW创建一个窗口渲染循环glClearColor和glClear三角形图元(primitive)标准化设备坐标(Normalized Device Coordinates, NDC)10.15vs解决方案sln文件lib和头文件c++里的数组和size...

2020-02-17 20:57:45 80

原创 Unity2D开发学习笔记(一)

void Update() { horizon = Input.GetAxisRaw("Horizontal"); if (Input.GetKeyDown(attack)) { isattack = true; } if (Input.GetKeyDown(shoot)) { isshoot = true; } if (...

2019-10-11 23:52:47 71

原创 Unity2D开发学习笔记(二)

获取输入先写一个playerInput2D类来获取玩家得输入,对于用户的输入可以分为两种类型的信号,一是持久性的信号例如移动等长按型的信号,还有种是像攻击,跳跃这种瞬间型的信号。public float horizon;//因为是2d游戏所以,通过这个浮点数的正负来决定角色的水平速度public bool isattack;//按了攻击 瞬间信号public bool isjump;//...

2019-10-11 23:47:25 214

空空如也

空空如也

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