自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LST329的博客

个人学习笔记

  • 博客(33)
  • 资源 (1)
  • 收藏
  • 关注

原创 To美术-渲染管线及优化方向(CPU方向)

DrawCall原理及优化方向

2024-07-09 10:51:31 764 1

原创 UnityShader常用算法笔记(颜色叠加混合、RGB-HSV-HSL的转换、重映射、UV序列帧动画采样等,持续更新中)

【代码】UnityShader常用算法笔记(颜色叠加混合、RGB-HSV-HSL的转换、重映射、UV序列帧动画采样等,持续更新中)

2024-03-08 16:51:46 1383

原创 提炼总结之——3D数学基础:图形与游戏开发

前言这篇文章仅为了方便于自己查找一些3d 的数学公式。一、向量类向量的点积公式1:a⃗⋅b⃗=∣a⃗∣⋅∣b⃗∣cosθ\vec{a}·\vec{b} = |\vec{a}|·|\vec{b}|cos\thetaa⋅b=∣a∣⋅∣b∣cosθ公式2:a⃗⋅b⃗=(a⃗x,a⃗y,a⃗z)⋅(b⃗x,b⃗y,b⃗z)=a⃗xb⃗x+a⃗yb⃗y+a⃗zb⃗z\vec{a}·\vec{b} = (\vec{a}_{x},\vec{a}_{y},\vec{a}_{z})·(\vec{b}_

2022-12-28 10:19:02 1135 1

原创 Unity截屏或Render Texture渲染后的图片透明物体出错的问题及解决方法

发现问题 刚刚接触一个需要截屏分享的项目,但Unity那边一直反馈透明物体截图会错误,有透明物体的地方不管该物体后面有没有其他物体,截屏出来的图片都会变透明掉了。 我测试了一下,发现并不是所有的透明物体都会出现这个问题,Transparent显示是正常的,Fade显示是有问题的,自定义的shader一般都会出现问题。 ![请添加图片描述](https://img-blog.csdnimg.cn/1d45d2c9ee124a42bd1b657772fa8023.png?x-oss-process=ima

2022-01-05 11:47:11 5546

原创 【Unity Shader入门】6、Blend-混合

语法Blend Off关闭混合(这是默认值)Blend SrcFactor DstFactor配置并启用混合。生成的颜色将乘以 SrcFactor。屏幕上的已有颜色乘以 DstFactor,然后将这两个值相加。Blend SrcFactor DstFactor, SrcFactorA DstFactorA同上,但使用不同系数来混合 Alpha 通道。BlendOp Op不将混合颜色相加,而是对它们执行不同的操作。BlendOp OpColor, OpAl

2021-06-24 11:00:10 1875

原创 UnityEditor MenuItem菜单项-快捷键的实现

MenuItemMenuItem 属性用于向主菜单和检视面板上下文菜单添加菜单项。该 MenuItem 属性能够将任何静态函数转变为菜单命令。仅静态函数可使用 MenuItem 属性。要创建热键,您可以使用以下特殊字符:%(在 Windows 上为 ctrl,在 macOS 上为 cmd)、# (shift)、& (alt)。如果不需要特殊的修改键组合,该键可以在下划线后给出。例如,要创建一个带有热键 shift-alt-g 的菜单,可以使用“MyMenu/Do Something #&amp

2020-12-21 17:44:06 1284

原创 C# 踩坑记录:struct 结构体长度问题

下面的结构体总共11个字节,但通过Marshal.SizeOf(HeadData)获取到的是12个字节 [System.Serializable] public struct HeadData { public uint frameNO;//4个字节 public ushort moduleNO;//4个字节 public int dataLength;//4个字节 public byte dataType;//1个字节

2020-11-03 15:48:55 2211 2

原创 UnityXR-Hololens-自定义shader总结

第1篇. Multi-Pass VS Single-Pass-Instanced1.1 Multi-Pass    Multi-Pass,又称传统双通道模式。该模式是先完成左眼的渲染,然后再做右眼的渲染。这种模式虽然能很快速适配VR/MR,但是两眼之间会有一定的时滞与延迟,体验不佳。因为在这种模式下, Unity会为左右眼各分配一个Render Texture做渲染, 目的是和非VR模式下的渲染方式尽可能的兼容。该模式可以完美支持自定义shader和后处理,即自定义shader和后处理按照传统的方法

2020-07-01 00:18:48 2146 5

原创 UnityShader MatCapShader的实现及优化(一种低消耗“次世代”的渲染技术)

前言MatCap渲染技术有些美术还不太清楚是什么,这篇文章分四部分,第一节介绍MatCap是什么;第二节是MatCap在Unity的实现方式;第三节主要优化MatCap现有的缺陷的一个缺陷。现在把我实现的方式记录下来,希望能帮助到更多的人。一、MatCap是什么?Matcap Shader是一种在某些层面能替代甚至超越PBR的次时代渲染方案。Matcap的原理并不复杂,就是使用一张中间为...

2020-04-18 15:20:17 3294 1

原创 【Unity Shader入门】5、几何着色器Geometry Shaders之实例1:通过一个三角面片挤出

效果展示三角面转为三菱体的原理解析我们已知一个图元如下图:三角面Plane(P0−P1−P2)为输入的三角面图元,向量V0=P2−P0,向量V1=P1−P0三角面Plane(P_0-P_1-P_2)为输入的三角面图元,向量V_0=P_2-P_0,向量V_1=P_1-P_0三角面Plane(P0​−P1​−P2​)为输入的三角面图元,向量V0​=P2​−P0​,向量V1​=P1​...

2020-02-16 22:17:24 616

原创 【Unity Shader入门】4、几何着色器Geometry Shaders之结构解析

  其实unity shader除了vertex shader和frag shader之外,还有一个geom shader,处理流程在vextex shader和frag shader之间。  顶点着色器是逐顶点操作,可以进行坐标变换等计算。  片段着色器是逐片段/像素操作,进行最终输出颜色的计算。  几何着色器是逐图元的操作。它的输入是图元,输出也是图元。1、设定着色器编译目标级别为4...

2020-02-15 09:57:09 2267

原创 【Unity Shader入门】3、Unity默认的渲染管线

Unity的渲染流水线可分为:应用阶段几何阶段光栅化阶段一、应用阶段应用阶段包括1、顶点数据(Gpu固定实现)1.1、数据加载到显存中  将渲染所需数据从硬盘加载到内存中,网格纹理等数据又被加载到显存中(一般加载到显存后内存中的数据就会被移除)1.2、设置渲染状态  这些状态定义了场景中的网格是怎么被渲染的。例如,使用哪个顶点着色器, 片原着色器,光源属性,材质等。1.3、调...

2020-02-12 13:09:47 2856 1

原创 UnityShader常用函数(UnityShader内置函数、CG和GLSL内置函数等)

一、CG和GLSL常用函数数学函数CG语言GLSL语言功能描述ceil(x)ceil(x)对输入参数向上取整。例如: ceil(float(1.3)) ,其返回值为2.0floor(x)floor(x)对输入参数向下取整。例如floor(float(1.3))返回的值为1.0;但是floor(float(-1.3))返回的值为-2.0。该函数与ceil(x)...

2020-02-01 23:06:43 16297 2

转载 Unity博主营地|你不可不知的Unity C#代码小技巧

开门见山的说,这篇文章干到挤不出一点水分。文章主要针对Unity初学者,相信读了本文之后,大家在使用 Unity 和编写代码时会更加得心应手!废话不多说,直接教程奉上。今天的教程来自Unity 爱好者Michael Wang。关注Michael Wang:https://connect.unity.com/u/michael-wang-2[SerializeField][Serializ...

2020-01-21 09:53:26 397

转载 利用GPU实现翻页效果,UnityShader实现(转载)

原文:https://www.cnblogs.com/murongxiaopifu/p/7441058.htmlVertex Shader之前看到过类似“Unity怎么实现类似书本的翻页效果”之类的问题,答案大多是利用现成的插件来实现,这听上去似乎并没有实际上解决这个问题。后来又看到过一些更靠谱的解决方案例如利用UGUI的vertex modifier修改顶点、或者使用骨骼动画。等一下,修改...

2020-01-14 10:45:31 408

转载 神奇的深度图:复杂的效果,不复杂的原理(转载)

原文:https://www.cnblogs.com/murongxiaopifu/p/7050233.html0x00 前言本文是《有趣的深度图》的第二篇文章,上一篇文章《有趣的深度图:可见性问题的解法》中已经和大家介绍了深度图在解决可见性问题中的应用。其实,利用深度信息我们可以实现很多有趣而又显得“高大上”的效果。不过这些效果虽然看上去高大上,但是一旦了解了原理就会发现实现这种效果其实是...

2020-01-14 10:28:17 381

转载 有趣的深度图:可见性问题的解法(转载)

原文:https://www.cnblogs.com/murongxiaopifu/p/6920641.html0x00 前言说起深度,朋友们一定都不陌生。为了解决渲染场景时哪部分可见,哪部分不可见的问题(即可见性问题,也被称为隐藏面移除问题,hidden surface removal problem,从术语这个角度看,技术的发展有时也会带动心态向积极的方向的变化),计算机图形学中常使用画家...

2020-01-14 10:12:49 432

原创 【Unity Shader入门】2、UnityShader最全的文件结构参考

Shader "Unlit/001"{ //属性块 Properties { _Int("Int",Int) = 2 _Float("Float",float) = 1.5 _Range("Range",range(0.0,2.0)) = 1.0 _Color("Color",Color) = (1,1,1,1) _Vector("Vector",Vector) = (...

2020-01-03 15:54:11 707

原创 五、百度ARForUnity之 —— SLAM

SLAM是指无图识别# 1、创建场景老规矩,把ARCamera prefab拖入场景中,填写APPID等参数。在Hierarchy里创建一个空物体(我这把空物体改名了,改为ARObjectTracker),为该空物体添加BaiduARObjectTracker组件。创建一个空物体,把空物体拖到ARObjectTracker下面,再把模型拖在空物体上,在空物体上挂上BaiduARObject...

2019-12-06 23:19:03 1613 3

原创 四、百度ARForUnity之 —— 连续识图

在第二章里的图片识别,只能识别图片而不能跟踪图片,可以识别多张图片;在第三章里的2D跟踪,可以跟踪识别的图片,但只能跟踪一张识别图;连续识图就是两个功能的结合体,当识别一张图片时调用跟踪这张识别图,具体方法如下:一个图片识别会与一个2D跟踪对应(填写的FilePath一样)实现连续识图,思路如下:当图片识别识别成功了,可以通过2D跟踪的SetActiveTrack方法设置2D跟踪的图片但有时两...

2019-12-06 23:17:27 441

原创 三、百度ARForUnity之 —— 2D跟踪

2D跟踪只支持跟踪一张识别图1、添加ARCamera跟图片识别一样,删掉场景的相机,把ARCamera prefab拖入场景中2、创建ARImageTracker在Hierarchy里创建一个空物体(我这把空物体改名了,改为ARImageTracker),为该空物体添加BaiduARImageTracker组件组件讲解OnErrorEvent事件:当识别出错会调用该事件OnTrackS...

2019-12-06 23:15:23 385

原创 二、百度ARForUnity之 —— 图片识别

1、生成下载资源包开发2D跟踪和本地识图功能时,需要先生成跟踪模型。首先前往DuMix AR官网(http://dumix.baidu.com/console),上传图片,生成并下载资源包。过程如图所示:下载的资源包和资源包包含的内容,如图所示:注:下载的资源包的名字可以修改,但资源包内部的三个文件夹的名字不可以修改。2、图片识别a)、根据第一章创建一个场景,删掉场景的相机,把ARCa...

2019-12-06 23:12:48 1588

原创 一、百度ARForUnity之 —— Unity包结构

一、百度AR Unity包结构1、Unity包结构下载链接:https://cloud.baidu.com/product/arhttp://ai.baidu.com/sdk#ar2、下载License文件创建应用后,会得到相应的AppID,APIKey,SecretKey,包名和License文件。在开发完成后生成应用时,需要将包名修改成创建时填写的包名。并下载对应的License...

2019-12-06 23:08:26 780

原创 Window使用虚拟机安装MacOS

Window使用虚拟机安装MacOS一、资源下载(百度云盘链接)链接: https://pan.baidu.com/s/1hzRC1OoNBFb9DHjGu7tJjQ提取码: b2jv二、VM软件的安装1、资源下载完成后,双击“VM 15”文件夹里的“VMware-workstation-full-15.0.0-10134415.exe”进行安装。2、安装完成后,点击许可证,输入许可证...

2019-12-06 23:04:07 1970

原创 Unity安卓开发(四)Android Studio导出aar包,并在Unity使用

上一篇已经介绍了Android Studio导出Jar包、扩展Unity的MainActivity、Unity Android互相调用这篇跟上篇差不多,但是Unity使用的是Android Studio导出的aar包。aar相当于Android Studio把Unity要用到的资源(libs、res等)压缩到aar里,aar可以说就是一个压缩包。根据上一篇的操作后,Android Studi...

2019-06-08 23:57:54 1131

原创 Unity安卓开发(三)Android Studio导出Jar包、扩展Unity的MainActivity、Unity Android互相调用

在Android Studio创建项目创建一个新项目点击下一步,Phone and Tablet选择API16,因为Unity最低支持API16 下一步后,选择Empty Activity下一步,默认即可下一步,再点击完成,创建项目完成。在该项目创建新的模块1、点击文件——>New——>New Module2、点击Android Library,点击下一步3...

2019-06-08 22:21:00 2297

原创 Unity安卓开发(一)三种BuildSystem的简介

Unity5.X的Internal:Unity内置,仅需要Android SDK支持,不能导出工程,适用于仅使用到Unity开发的项目。可以不签名(使用默认的Debug签名)Gradle:使用Gradle进行构建,需要Android SDK与Gradle支持,可以导出Android Studio工程,适用于Unity与Android交互的项目。必须要求自己签名ADT:使用ADT进...

2019-06-08 11:43:08 2788

原创 Unity安卓开发(二)使用命令行创建签名

1、按下Windows+R键打开运行2、输入CMD后按回车3、之后会弹出一个输入命令行的窗口4、找到自己电脑上JDK安装的路径,我的电脑上的路径是:C:\Program Files\Java\jdk1.8.0_45 每台电脑路径不一定相同打开该路径的bin文件夹,复制该路径:C:\Program Files\Java\jdk1.8.0_45\bin5、由于我的安装路径在C盘...

2019-06-08 11:41:16 717

原创 C# 多线程详解

1、进程和线程的一个简单解释摘自SIKI学院1,计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2,如果工厂的电力有限一次只能供给一个车间使用。也就是说一个车间开工的时候,其他车间就必须停工。背后的含义就是。单个CPU一次只能运行一个任务。(多核CPU可以运行多个任务)3,进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他...

2019-04-25 17:49:32 1115 1

原创 C# Directory用法之创建删除移动文件夹,获取子目录、文件名等

Directory Class,命名空间:System.IOPath Class是用于通过目录和子目录进行创建、移动和枚举的静态方法。 static void Main(string[] args) { //获取应用程序当前工作路径 //返回String类型 string appPath =...

2019-01-19 18:36:57 732

原创 C# Path用法之路径中获取文件全路径、目录、扩展名、文件名称等

Path Class,命名空间:System.IO static void Main(string[] args) { string filePath = @"E:\Users\LST\Desktop\test.png"; string[] paths = { @"E:\Users", &amp

2019-01-19 13:15:24 2422

原创 【Unity Shader入门】1、文件结构分析

一、基本结构//Shader的引用名Shader "Custom/LST" { //属性定义 Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = &

2018-11-02 00:47:31 447

转载 【DirectX11】之——Effects框架

本文为转载文章, 这里为原文链接。一、 什么是Effects?effect框架是一组用于管理着色器程序和渲染状态的工具代码。例如,你可能会使用不同的effect绘制水、云、金属物体和动画角色。每个effect至少要由一个顶点着色器、一个像素着色器和渲染状态组成。在Direct3D 11中,effects框架已从D3DX库中移除,你必须包含一个单独的头文件(d3dx11Effect.h),链接...

2018-10-20 22:45:51 1053

UnityShader MatCapShader(Unity2018)的实现及优化(一种低消耗“次世代”的渲染技术)

UnityShader MatCapShader的实现及优化(一种低消耗“次世代”的渲染技术) 该项目是基于Unity2018.3.0的 该资源相关的文章链接:https://blog.csdn.net/u012722551/article/details/105588501

2020-04-18

空空如也

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

TA关注的人

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