![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Unity3D
文章平均质量分 85
unity3D技术记录和分享
heater404
这个作者很懒,什么都没留下…
展开
-
LoxodonFramework快速入门
一、简介LoxodonFramework是什么,是用来干嘛的。我在这里就不介绍了,直接上链接:vovgou/loxodon-framework: An MVVM & Databinding framework that can use C# and Lua to develop games (github.com)链接里有很全的介绍和教程,这篇文章主要记录学习理解该框架的心得。二、快速入门笔者之前也用过WPF的MVVM框架–Prism,所以在unity中也想找到类似的框架,那么Loxodon原创 2021-11-27 16:53:22 · 2606 阅读 · 0 评论 -
Unity使用Mesh实现实时点云(二)
一、背景在上一篇中,我们实现了静态点云,并且尝试直接在CPU中更新点云发现效率非常低。所以这篇文章,我们将更新点云的操作放在ComputeShader中。二、思路还是自定义mesh创建点云模型点云模型中的顶点坐标和颜色在ComputeShader中赋值自定义UnlitShader中获取ComputeShader中计算得到的顶点坐标和颜色进行渲染三、实现自定义mesh默认情况下,在一个mesh中我们最多可以定义65535个顶点,如果还有更多的顶点那么我们需要修改一个参数。Unity - S原创 2021-09-06 15:08:19 · 8436 阅读 · 4 评论 -
Unity Shader(给Shader传递用户数据)
Unity Shader(给Shader传递用户数据)通过代码修改Shader中的属性前面我有讲到可以定义各种类型的属性,然后在面板上可以进行更改。但是其实我们也可以在代码中进行修改。 Properties { _Color("I am Color", Color) = (1,1,1,1)//依次为RGBA(0-1) _Int("I am Int", Int) = 1 } public Material material;//Shader所在的materi原创 2021-09-04 17:41:30 · 2073 阅读 · 0 评论 -
ComputeShader
ComputeShader一、概念全称为GPGPU(General-purpose computing on graphics processing units)。它是一种运行在显卡上却不在普通渲染管线上的程序,利用它可以做大型并行的GPGPU算法,以此来获得比CPU快很多倍的计算能力。二、内容新建一个ComputeShader,我们来看一下里面的默认内容:// Each #kernel tells which function to compile; you can have many kern原创 2021-09-03 12:22:35 · 1621 阅读 · 6 评论 -
Unity Shader(深入了解顶点片断着色器)
Unity Shader(深入了解顶点片断着色器)什么是渲染流水线大致可以分为以下三个大阶段:应用阶段(Application Stage):就是我们的原始素材准备阶段,包括我们的模型、贴图、相机和光源等,经过这个阶段会将所有素材转换成渲染图元并提交到下一阶段中。这一阶段通常由CPU负责实现。几何阶段(Geometry Stage):主要是对上一阶段中传过来的数据进行顶点上的加工处理,包括各种矩阵转换与顶点着色等,最终处理完后会输出屏幕空间的二维顶点坐标、顶点着色等信息,并再提交到下一阶原创 2021-08-18 15:17:13 · 310 阅读 · 0 评论 -
Unity Shader(CgHLSL中的数据类型)
Unity Shader(Cg/HLSL中的数据类型)在Shader中,我们在Properties中定义的变量是为了在材质面板中显示并方便我们调节,如果要在Cg/HLSL中使用的话就必须要重新声明一次(要求命名一致)。Cg/HLSL中的数据类型float高精度类型,32位,通常用于世界坐标下的位置,纹理UV,或涉及复杂函数的标量计算,如三角函数、幂运算等。half中精度类型,16位,数值范围为[-60000,+60000],通常用于本地坐标下的位置、方向向量、HDR颜色等。fixed原创 2021-08-11 16:29:40 · 661 阅读 · 1 评论 -
Unity使用Mesh实现实时点云(一)
Unity使用Mesh实现实时点云(一)一、渲染事物unity是基于mesh去做渲染的,也就是说想在unity里看见东西的话,就必须使用mesh。它可以来自于其他软件制作的3D模型进行导入,可以是有代码动态生成出来的,也可以是一个sprite、UI元素或者是粒子系统。mesh是图形硬件用来绘制复杂事物的框架,它至少包含一个顶点集合(这些顶点是三维空间中的一些坐标)以及连接这些点的一组三角形(最基本的2D形状)。这些三角形集合在一起就构成任何mesh所代表的表面形状。由于三角形是平的,是直线的边,所以它原创 2021-08-11 16:04:59 · 8329 阅读 · 3 评论 -
Unity Shader(实现一个只有颜色属性可调节的简单材质效果)
Unity Shader(实现一个只有颜色属性可调节的简单材质效果)在一个Shader中,可以有多个SubShader以及一个SubShader中也可以有多个Pass,但是一个Shader中必须要至少有一个SubShader,并且这个SubShader中也必须至少有一个Pass。Pass的意思就是渲染一次模型,具体怎么渲染就需要我们在Pass中添加Cg/HLSL代码片断来实现了,这段代码片段是由CGPROGRAM开始,由ENDCG结束。我们必须要添加CGPROGRAM和ENDCG,然后在他么中间去写实现原创 2021-08-11 16:00:58 · 816 阅读 · 0 评论 -
Unity Shader(基本概念)
Unity Shader(基本概念)一、什么是Shadershader,中文名为着色器。shader其实就是专门用来渲染图像的一种技术,通过shader,我们可以自定义显卡渲染画面的算法,使画面达到我们想要的效果。shader分为两类:顶点shader(3D图形都是由一个个三角面片组成的,顶点shader就是计算每个三角面片上的顶点,并为最终像素渲染做准备)。像素shader,顾名思义,就是以像素为单位,计算光照、颜色的一系列算法。几个不同的图形API都有各自的shader语言,在DirectX原创 2021-08-11 15:59:19 · 8550 阅读 · 1 评论 -
使用VertexHelper自定义控件之ColorBar(二)
一、实现ColorBar什么是ColorBar???直接上效果图:就是一组数据映射到一组颜色上,类似于伪彩图。首先我们需要准备一组颜色,我们可以选择HSV颜色模型,HSV颜色模型在这不做详细解释,不了解的同学可以自行学习。那么如何将颜色填充到顶点上呢?我们可以用矩形顶点,矩形上面两个顶点用同一个颜色,矩形下面两个顶点用其他的同一个颜色,这个矩形下面的两个顶点会和下一个矩形的上面两个顶点重合。 /// <summary> /// /// </summary&原创 2021-08-02 17:32:30 · 507 阅读 · 0 评论 -
使用VertexHelper自定义控件之ColorBar(一)
使用VertexHelper自定义控件之ColorBar(一)一、VertexHelper简介在自定义控件之前我们必须先了解VertexHelper(顶点辅助器)这个类。UGUI是图形学渲染和射线检测这两个技术结合的典型例子。图形学渲染来处理UI的显示,射线检测用来交互。所有的渲染对象都是由网格(mesh)构成,mesh的绘制单元是图元(点、线、三角形)。意思就是所有的游戏对象都是在绘制一些点、线、三角形的集合。顶点数据中最主要的是位置、颜色、纹理坐标、法线等。也就是说顶点中保存着其位置、颜色、纹原创 2021-07-30 14:39:32 · 428 阅读 · 0 评论 -
Unity3D界面嵌入WPF界面中(鼠标键盘均可正常响应)
Unity3D界面嵌入WPF界面中(鼠标键盘均可正常响应)1、引用System.Windows.Forms.dll和WindowsFormsIntegration.dllunity3D界面不能够直接嵌入到WPF控件中,但是可以嵌入到WinForm控件中,所以我们需要在WPF中使用WinForm控件作为载体。需要引用上述dll,如下图所示:然后在Xaml文件中引入命名空间即可使用WinForm控件,例如:xmlns:wf="clr-namespace:System.Windows.Forms;ass原创 2020-10-11 01:06:28 · 2623 阅读 · 7 评论