
渲染
文章平均质量分 70
HelloMingo
既然天注定,我们各自修行。
展开
-
Shader处理角色皮肤特效接缝
游戏角色皮肤要做流动特效,如果使用顶点uv对效果贴图进行采样,存在以下几个问题:因为在展UV的时候,各个结构之间基本都是拆开的,流动效果会有明显的接缝问题,破坏了效果的完整性 同样因为展UV的原因,无法保证各个部位的流动方向一致具体效果如下:所以,效果图采样不能使用顶点UV,可以考虑使用顶点的世界坐标或自身坐标。如果使用世界坐标,那么就会出现角色在移动过程中,对特效流动效果产生影响,这要看具体影响程度。如果使用自身坐标,需要设置一个偏移量,因为大部分角色的模型左右对称,如果不做一个偏移并原创 2021-11-23 19:52:12 · 2291 阅读 · 0 评论 -
Unity URP SRPBatcher踩坑记录
SRPBatcher是对相同shader材质进行渲染优化的一种方式,这里不介绍使用方式,只针对在使用过程中遇到的坑点进行记录。关于:Node use different shader keywords因为使用了不同的keywords导致了batch中断,首先应该检查mat设置使用的keywords是否一致。但既然是坑,就不可能这么简单解决。状况1:检查以后发现mat设置相同,把shader中的所有keywrod都关掉,保证shader只有一个变体,结果也还是报这个信息。问题原因:美术在制原创 2021-10-13 17:28:26 · 6681 阅读 · 3 评论 -
Unity特效性能测试小工具
闲来准备了一个批量自动化测试特效性能的小工具,导出的是txt文本,后续有时间升级到excel表格。using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;using System;using Random = UnityEngine.Random;public class EffectProfTest : MonoBehaviour{ /// <原创 2021-09-19 21:53:07 · 725 阅读 · 1 评论 -
Unity Shader中CGINCLUDE和CGPROGRAM
Unity ShaderLab支持使用GLSL、HLSL和CG三种语言编写shader。CG(C for Graphics )是 NVIDIA 公司开发的语言。从名字上来看的出它是 C 语言的亲戚,现实是它保留了 C 语言的大部分语义。NVIDIA官方已经宣布自CG3.1版本后,不再维护和发展Cg语言。 HLSL(High Level Shader Language) 的简称,由微软和NV...原创 2019-12-16 17:14:08 · 2301 阅读 · 0 评论 -
Unity 镜头烟雾特效的笔记贴
效果:烟雾缭绕实现思路的探索:最直接的思路就是用粒子模拟,粒子特效特效跟随摄像机,然后布拉布拉的往外喷。效果还可以接受,但是用默认shader实现的粒子特效,会跟墙体地面等场景物品产生明显的接缝。这个问题起始解决起来也比较方便,把默认的粒子shader复制一遍,然后关闭ZTest。但是,虽然这个效果也可以接受,但是,为了压缩这一点点的性能开销,还是像尝试使用UV实现。PS4上看到一款游戏《路弗兰的...原创 2018-06-02 21:59:43 · 6507 阅读 · 4 评论 -
Unity Shader 自定义SurfaceShader
这里只做记录用,不进行详细的讲解。Shader "Custom/SurfaceShader" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5原创 2017-12-15 18:13:48 · 1453 阅读 · 0 评论 -
Unity Shader之TRANSFORM_TEX方法
TRANSFORM_TEX方法比较简单,就是将模型顶点的uv和Tiling、Offset两个变量进行运算,计算出实际显示用的定点uv。原创 2017-12-13 11:42:37 · 28213 阅读 · 0 评论 -
UnityShader常用设置标签和命令
这篇帖子纯粹是为了记录一下最近的学习内容。并不会讲解什么内容。关于多个Pass执行的疑惑在没有设置标签Tag(如"LightMode"(暂时不知道还有没有其他的))的情况下,全部的Pass都会执行。如果有设置Tag内容,比如"LightMode"=“ForwardBase”,那么就会根据条件进行选择性的执行了。至于怎么选择的,网上帖子很多,不作为本篇重点。关于半透明材质原创 2017-04-23 20:26:23 · 1299 阅读 · 0 评论 -
UnityShader太空中的大气层效果
在Unity中实现宇宙中的大气层效果原创 2017-04-21 14:04:20 · 3466 阅读 · 0 评论 -
Unity NGUI对特效的显示范围进行控制
在ngui的ScrollView中如果有特效存在,特效是不受panel裁剪的影响的。那么怎么限制特效的显示范围呢?原创 2017-03-08 13:55:44 · 3242 阅读 · 3 评论 -
Unity透明材质&(内侧)描边
Unity透明材质&(内侧)描边原创 2016-12-24 17:44:45 · 2547 阅读 · 0 评论 -
Unity Shader 径向模糊
最近用到一个径向模糊的效果,参考了网上几篇文章。自己整理了一下新建一个UnlitShaderShader "Unlit/Radial"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Level("Level",Range(1,100))=50 _CenterX("Center.x",Range(0,1))原创 2016-09-26 15:57:01 · 2793 阅读 · 0 评论 -
Unity Shader自定义光照模型
前几天去一家公司面试,因为简历上写着“能写简单的Shader”,就被问了一个问题:怎么自定义一个光照模型?直接懵逼了,隐隐约约能联想到的什么漫反射光+镜面反射光+环境光...难道是这个?光照模型就是#pragam surface surf Lambert里面的那个Lambert呗?这不都是写好的吗?还能自定义啊?!本着“程序是严谨的”的心态,宁可说不知道,也不能瞎说。。。今天有空,抓紧学习原创 2016-08-14 23:38:48 · 4859 阅读 · 0 评论 -
大光头的shader学习之路-自己写的一个消融效果
一个简单的消融效果和另一个简单的消融效果原创 2016-07-22 23:56:46 · 1734 阅读 · 0 评论 -
Unity Shader实现跳动的心脏
通过shader控制定点,实现心跳效果。原创 2016-07-08 21:02:37 · 3419 阅读 · 0 评论 -
Unity的静态批处理和动态批处理
什么是批处理为了将物体绘制到屏幕上,引擎必须向图像API(例如OpenGL、Direct3D)发送一个draw call指令。每一次draw call就可以大致理解为一个渲染批次(batch)。Draw call属于资源密集型的指令,图形API要为每个Draw call做大量的工作。造成CPU性能消耗的主要是渲染状态的切换导致的,例如切换到不同的材质,这会导致在图形驱动中产生密集的资源验证和切...原创 2019-12-05 18:32:49 · 5895 阅读 · 1 评论 -
Unity渲染流程概述
本篇的任务是回答:在Untiy的渲染流程中CPU和GPU分别做了什么。渲染到设备屏幕显示的每一帧的画面,都经历几个阶段的加工过程:应用程序阶段(CPU):识别出潜在可视的网格实例,并把他们及其材质提交给GPU以供渲染。 几何阶段(GPU):进行顶点变换等计算,并将三角形转换到齐次空间并进行裁剪。 光栅化阶段(GPU):把三角形转换为片元,并对片元执行着色。片元经过多种测试(深度测试,a...原创 2019-12-04 19:58:29 · 12572 阅读 · 0 评论