Unity3D
niuge No.1
这个作者很懒,什么都没留下…
展开
-
Unity Reflect使用方法
1、官网下载Unity Reflect安装包第一个是插件包,第二个是查看器。安装的坑:比如Revit插件,需要一个个安装。Unity Reflect - 面向建筑项目实时协作 | Unity中国官网2、使用方法参考官方文档略。3、查看效果小模型效果挺好,但是大一点的模型,会出现很多组件加载不出来的情况,比如下图二(整个模型有45000多构件,场景只能加载10000个左右的构件)。这就很尴尬了,作为一款商业产品,居然这么水。4、加载Unity Reflect包...原创 2022-01-27 18:14:05 · 4835 阅读 · 2 评论 -
游戏引擎Unity3D与BIM的结合
Unity版本:2019.4.16f1c1UnityGLTF项目地址:https://github.com/KhronosGroup/UnityGLTF1、首先需要在github上找到UnityGLTF项目,这个项目可以加载gltf。2、然后将rvt或者其他BIM模型转化成gltf文件(核心)。3、改造UnityGLTF项目,能够加载第二步导出来的bim模型。最终效果如下图:...原创 2020-12-24 09:42:22 · 4730 阅读 · 1 评论 -
Unity3D shader(13)——Fragment Shader(简单的纹理采样)
Shader的纹理采样千变万化,正真要把所有的计算效果做出来,可以写出厚厚的一本书。这里就仅仅表达一下Fragment Shader的纹理采样的语法。 1)首先在Properties 里声明贴图 2)然后将贴图的纹理的uv坐标传导到v2f结构里 3)最后在fram函数里,计算uv坐标的变化,达到各种各样的效果。这里主要和时间(_Time)关联起来,从而形成一个动态的样图。Shader "Cus原创 2017-08-13 16:07:27 · 1335 阅读 · 0 评论 -
Unity3D shader(16)——“Queue”、“IgnoreProjector”、"RenderType"、Ztest、Zwrite、cull
经常在Unity3D里的shader里见到这样的Tags{"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}语句,这些语句都有什么意思呢?在不同的情景上,又怎么去用好这些命令,今天就主要讨论这些问题。原创 2017-08-20 17:27:33 · 10487 阅读 · 0 评论 -
Unity Shader(4)——surface shader(三)
接着上篇讲,雾化也是很重要的一种表现效果。(这里根据官方文件整理,后期会补上各种原理)1、这里的雾化效果是根据物体和屏幕中心相关,离屏幕越近,雾化效果越明显Shader "Example/Fog via Final Color" { Properties { _MainTex ("Texture", 2D) = "white" {} _FogColo原创 2017-08-06 10:59:12 · 369 阅读 · 0 评论 -
Unity3D Shader(17)——水的折射
这里引用的是蛮牛的Unity3D Shader的进阶教程里的代码。咨询:qq254033230这里依然用的是vertex 和fragment shader来解决水的反射的问题。首先,准备两个平面,一个平面作为底图,一个平面模拟水的波动。这里要用到抓取底图的通道 GrabPass{}。然后把抓取的通道图放到水面的那张图上。另外一个难点就是要模拟水的波动,水的波动的原理如下图: 其中顶点函数代码和片段原创 2017-08-22 19:34:51 · 1823 阅读 · 0 评论 -
Unity3D Shader(19)——一个简单的色散
这里放一个简单的色散的效果。Shader "Custom/fresel" { Properties { _FresnelBias("Bias",range(0,1))=0 _FresnelScale("Scale",range(0,1))=0 _FresnelPow("Pow",range(0,5))=1 _CubeTex ("原创 2017-09-06 00:25:48 · 1415 阅读 · 0 评论 -
Unity3D Shader(10)——Fragment Shader(漫反射、phong效果、blinnPhong效果、阴影、halfLambert、渐变纹理)
Fragment Shader的效果要好于vertex shader,前者基于面,然后逐像素处理对象,后者基于顶点来处理对象,缺点就是前者计算相对复杂,会多耗费一些资源。首先对应着vertex shader(看之前的博客),来看一下Fragment的漫反射的效果。Fragment Shader的主要计算在Frag方法里计算,Vert方法主要起传递数据的作用,而vertex shader主要原创 2017-08-12 10:20:08 · 655 阅读 · 0 评论 -
Unity3D shader(20)——布料
布料这一块的内容不是很好找,就找到《Unity Shaders and Effects Codebook》里有介绍。然后,这篇博客再把这里的内容丰富了一下,作者不允许转载,就只能贴个链接地址,方便自己和后面的人查找:http://blog.csdn.net/candycat1992/article/details/27361707另外一篇:参数更多,但没有介绍具体参数:http://www原创 2017-09-09 23:33:24 · 3368 阅读 · 0 评论 -
Unity3D shader(18)——水的折射与反射
有任何shader的问题,直接qq254033230 水的折射与反射原理其实差不多,只是一个用ComputeGrabScreenPos(o.pos)来取得贴图,一个用ComputeScreenPos(o.pos)来取得贴图。另外还需要两个脚本,一个是工具类的脚本,一个是得到反射贴图的脚本。 这里直接放上核心源码:Shader "GameCore/Mobile/Water/Diffuse" {原创 2017-08-26 01:07:51 · 3656 阅读 · 0 评论 -
Unity3D shader(3)——surface shader(二)
接着上篇,(仅仅作学习之用,不作技术参考,具体可以看unity3D官方例子)1、立方体贴图的效果,这里的立方体贴图依据的是世界坐标。以下是一个最简单的立方体贴图的shaderShader "Example/WorldRefl" { Properties { _MainTex ("Texture", 2D) = "white" {} _Cube ("Cubem原创 2017-08-06 00:52:20 · 436 阅读 · 0 评论 -
Unity3D Shader(14)——Fragment Shader(遮挡、透明效果)
要形成遮挡透明效果,需要两个pass通道,一个pass通道渲染未遮挡部分,一个pass通道渲染被遮挡部分。这其中比较关键的一点是zwrite、ztest的用法(这个可以看官方文档及自己尝试)。具体代码及效果:Shader "Custom/FG" { SubShader { Tags { "Queue" = "Transparent" } LOD 200原创 2017-08-13 19:31:28 · 3250 阅读 · 1 评论 -
Unity3D shader(12)——Fragment Shader(模型颜色变化)
Unity3D 的shader要实现模型的颜色变化,只需要让颜色和坐标关联起来。这里先举一个vertex shader的例子,看看效果。从例子中,我们可以看到,程序自动对颜色的结果进行了混合,如果想颜色界限分明,那就需要在fragment shader里进行颜色赋值。Shader "Custom/FragmentShader" {properties{_MainColor("MainC原创 2017-08-13 10:48:11 · 2286 阅读 · 0 评论 -
Unity3D shader(5)——vertex shader(一)
基于顶点和片面的shader和surface shader还是有很多区别的,其中最基本的是语法区别。surface shader可以理解为是包装好的基于顶点和片面的shader语句。学习基于顶点和片面的shader语句更能理解其中蕴含的逻辑原理。1、首先看一个简单的点和片面的shader语句:Shader "Example/vf" { SubShader { pass原创 2017-08-06 20:31:06 · 497 阅读 · 0 评论 -
Unity3D shader(6)——vertex shader(顶点颜色变换)
Shader的顶点坐标其实和物体网格的局部坐标、世界坐标一致,只是这里需要有一个坐标转换。首先说一下Unity3D shader的坐标转换。这里首先需要了解Cg语言的标准函数库,链接地址:https://wenku.baidu.com/view/3a9db318fad6195f312ba675.html有两个转换,一个转换是将物体顶点坐标转换到Unity程序里的相机里的坐标;一个是原创 2017-08-09 13:49:24 · 7661 阅读 · 0 评论 -
Unity3D shader(7)——Vertex Shader(顶点几何变换)
变换顶点位移,只需要处理位移前,把顶点位移变换一下即可。这里举一个简单的例子,在一个平面上,离中心距离越近,顶点越高。详见代码:Shader "Custom/Vf Shader" {properties{_R("R",float)=4.0} SubShader { PASS{ CGPROGRAM #pragma vertex vert #pr原创 2017-08-10 15:56:03 · 1555 阅读 · 0 评论 -
Unity3D Shader(8)——Vertex Shader(漫反射)
实现漫反射,首先得需要漫反射的实现原理。漫反射的光包括物体表面漫反射的光和环境光,即:AmbientLight+Diffuse另外需要了解光照的反光原理,如图:最后用一段代码来实现,首先,要有光照模式,以及Unity3D内生的一些函数。关照模式通过标签tags来添加,内生的一些函数通过include来添加。代码如下:Shader "Custom/Vf Shader" {原创 2017-08-11 13:09:11 · 495 阅读 · 0 评论 -
Unity3D shader(2)——surface shader一
这里以Unity3D的官方例子为例。外加一些自己的理解。surface shader相比于fixed shader,语法有很大的区别。首先来看一个简单的surface shader。1、给物体添加一个白色的颜色其中:"RenderType" = "Opaque" 表示渲染模式为非透明的,#pragma surface surf Lambert表示光照模型是Lam原创 2017-08-04 21:07:02 · 471 阅读 · 0 评论 -
Unity3D shader(1)——fixed shader
之前学了下Unity3D的shader,回头再看的时候,已经忘得七七八八了。索性直接再时间学一下,顺便记一下笔记加上些自己的理解。Unity3D最简单的渲染管线是固定渲染管线。原创 2017-08-04 16:34:37 · 667 阅读 · 0 评论 -
Unity3D shader(9)——vertex shader(phong光照和BlinnPhong光照)
首先来看一下反射原理:首先通过L和N来求出R的向量,然后求出视角的向量V,最后将V和R点乘,可以求出光照强度。承接上一篇,具体代码如下:Shader "Custom/Vf Shader" {properties{_SpecularColor("SpecularColor",color)=(1,1,1,1)_Shininess("Shininess",range(1,8))原创 2017-08-11 23:46:40 · 473 阅读 · 0 评论 -
Unity3D Shader(11)——fragment shader(边缘泛光)
shader问题解答:扣扣 2540,33230 要想实现边缘泛光,只需要将普通的diffuse反射的亮度反过来即可。所以将1减去法向量和视角点乘的值即可。Shader "Custom/FragmentShader" {properties{_SpecularColor("SpecularColor",color)=(1,1,1,1)_Shininess("Shininess",range(原创 2017-08-12 23:46:59 · 1195 阅读 · 0 评论 -
Unity3D shader(15)——材质(玻璃)
如有更多问题,请qq254033230咨询。有了前面的基础,就可以随意用Unity Fragement Shader来实现自己想要的效果。这里就主要以玻璃为例。首先实现玻璃的透明的特性;里面的Tags { "Queue" = "Transparent" }是为了实现透明的效果。Blend SrcAlpha OneMinusSrcAlpha为了显示透明的物体不改变后面的物体的显示效果原创 2017-08-19 23:03:09 · 10829 阅读 · 0 评论 -
Unity3D中通过四元数得到欧拉角
Unity3D中通过四元数得到欧拉角原创 2016-11-27 22:54:25 · 1695 阅读 · 0 评论