![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity
周金为15952582017
这个作者很懒,什么都没留下…
展开
-
unity发布webgl平台结合vue,并实现事件交互
1.首先将unity发布出来的文件夹导入到vue项目中的static文件夹下 2.然后在vue组建中调用unity组建3.调整一下样式4.事件交互unity调用vue页面方法:unity向vue组建发送数据 :Application.ExternalCall("enter",param);vue组建监听事件: vue调用unity内部方法:在Unity中新建一个gameobject,命名为JSM.........原创 2021-12-15 11:47:39 · 7208 阅读 · 7 评论 -
为unity写简单的web接口(nodejs)
//引入express 创建服务器var express = require('express');var app = express();// 需要对表单数据进行解析的,安装bodyParservar bodyParser = require('body-parser'); //解析函数app.use(bodyParser.json()); //json请求app.use(bodyParser.urlencoded({ extended:true})); //表单请求.原创 2020-10-09 15:48:49 · 471 阅读 · 2 评论 -
unity发布webgl端页面内嵌以及通信
主页面:<body><iframe id="555" src="http://192.168.1.5:8888/webshow_H/index.html" frameborder="0" style="width:50%;height: 50%"></iframe><button onclick="document.getElementById('555').contentWindow.postMessage('10010016','*');">&l原创 2020-10-09 15:33:37 · 1264 阅读 · 1 评论 -
unity发布webgl端页面自适应问题的解决方案
Unity发布webgl端时,会出现这样的问题:页面边上会出现滚动条,当我们操作鼠标时,鼠标会带动整个页面滑动,现在我们通过修改样式来解决这个问题,让unity的窗口始终100%填充浏览器窗口,并且不出现滚动条。我们创建自己的样式文件mystyle.cssbody { margin: 0; width: 100%; height:100%;}html,canv...原创 2020-03-25 11:19:14 · 1491 阅读 · 0 评论 -
Unity之基于GeometryShader的补面
当我们在使用discard命令的时候模型会破面,因为discard截的是像素,截掉的地方并没有网格,是空的,所以要生成面才能组成一个封闭的模型,这里基于Unity的GeometryShader进行面的绘制。使用两个pass,第一个pass正常discard模型,第二个pass使用GeometryShader程序绘制面补上破面Shader "MyShader/GSTest"{ Pro...原创 2019-02-03 11:55:48 · 1448 阅读 · 6 评论 -
Unity Tessellation Shader+Geometry shader实现毛发效果
思路:利用Tessellation Shader(曲面细分着色器)来细化模型的三角面,保证后面生成的毛发足够细,足够密,利用Geometry shader(几何着色器)在细化后的三角面上额外生成向外突出的锥体来模拟毛发,该思路也可以实现其他类似的效果,性能消耗极少。Shader "Unlit/Tessellation"{ Properties { _Color("Mai...原创 2019-02-21 17:46:18 · 2495 阅读 · 2 评论 -
Unity读取并加载大模型(OBJ格式)
本篇博客介绍如何在Unity中加载3Dmax导出的obj模型文件,为了简化流程,我们除了顶点和三角面之外只选择导出法线信息。 导出之后我们得到这样的一个文件 其中v代表顶点信息,vn代表法线信息,f代表三角索引信息。我们在c#脚本中分别读取这些信息并绘制网格。(ReadInfoObj方法放在多线程中可以避免读取文件时Unity卡顿,路...原创 2019-04-03 15:17:45 · 8993 阅读 · 15 评论 -
Shader——移动平台上的优化
以下摘录自《Unity 3D ShaderLab开发实战详解》,第34章。(2015年第2版) 本章的大部分内容都是从 Unity 的官方论坛和文档收集的,在此只是简单地分享给读者。移动平台的特点相对于 PC 来说,移动平台上不论是内存还是运算速度,都相差了至少一个数量级,而且移动平台一般使用的是电源电池,而不是插线板,因此,其最大负荷是有限的...转载 2019-04-16 16:05:59 · 774 阅读 · 0 评论 -
Unity中使用设计模式之简单工厂模式、工厂方法模式和抽象工厂模式
比如我们想生产两种饮料(农夫山泉和脉动),在不使用任何设计模式时是这样的:using System.Collections;using System.Collections.Generic;using UnityEngine;public class Test : MonoBehaviour{ void Start() { Drink drink1...原创 2019-04-18 15:34:39 · 625 阅读 · 0 评论 -
基于UnityShader的面模型射线检测与表面曲线测量
实现流程:首先需要准备一个shader来做屏幕特效,shader中输出屏幕上面模型的深度信息,用来计算模型像素的坐标。Shader "Custom/Depth" { SubShader{ Tags{ "RenderType" = "Opaque" } Pass{ ZTest Always Cull Off ZWrite Off CGPROGRAM // Use sh...原创 2019-04-24 14:44:32 · 820 阅读 · 0 评论 -
unity 内存管理
转 unity 内存管理 2018年08月17日 14:19:42 tran119 阅读数:623 ...转载 2019-06-04 10:39:26 · 242 阅读 · 0 评论 -
Unity之基于光线投射算法的体渲染技术(二)
接上文https://blog.csdn.net/qq_34980278/article/details/84633767第二种光线投射算法的实现,基于光线起点(相机位置)。将相机位置由世界坐标通过模型视图投影矩阵反变换到长方体的局部坐标空间。每个fragment的坐标作为光线的入射点,由变换后的相机位置与光线入射点确定光线的方向,在沿着光线方向从入射点前进时,每到达一个新的点,判断其是否在长...原创 2019-01-25 18:20:41 · 1798 阅读 · 0 评论 -
初识ComputeShader
同其他shader一样,ComputeShader也是一段直接运行在GPU上的代码,只是它不在传统的渲染管线当中。它支持海量数据的传输和计算。下面通过具体的例子来见识一下ComputerShader的魅力所在。 我们通过ComputeShader+VFShader+C#来实现粒子效果,并且实时控制这些粒子的颜色和位置。在Computeshader中我们定义粒子对象的结构体,包...原创 2019-01-18 17:12:03 · 4754 阅读 · 2 评论 -
Unity中基于观察者模式的原理实现事件绑定
两种方法都可以实现对对象中数据的绑定,第一种通过接口实现,第二种通过委托实现,都需要手动添加绑定,第一种手动触发对应事件,第二种自动触发对应事件。一、通过接口实现1.首先定义需要触发的事件的接口public interface IWBindable{ void onBindingUpdate(Wbindable vo);}2.定义值对象的基类,实现事件的注册注销等...原创 2018-12-20 16:23:39 · 539 阅读 · 0 评论 -
带光照模型的的6面切割模型VFshader
这是用6个面来切割模型shader,当然稍加修改可以支持n(n>=1)个面,在c#代码中分别为pPoint和pNormal参数赋值,pPoint传入平面的世界坐标,pNormal传入该平面的法线。考虑到性能,光照模型加在了顶点程序中。Shader "Custom/6PlaneClipShader"{ Properties{ _Diffuse("Di...原创 2018-10-29 13:55:55 · 359 阅读 · 0 评论 -
shader实现二维CT图像效果
首先需要根据医院提供的数据生成Texture3D,然后在shader中使用内置函数tex3D进行3D纹理采样,最后通过lightCT封装的算法过滤颜色通道,只取单个通道。shader代码如下,效果如图。Shader "Custom/CT"{ Properties { _Volume ("Texture3D", 3D) = "" {} ...原创 2018-10-29 14:36:51 · 903 阅读 · 3 评论 -
基于光线投射算法(累加密度和最大密度投影)的三维CT图像(X光)效果
思路:利用平面的顶点和法线模拟一束平行光线,计算光线与物体(AABB)相交部分,以一定的步长采样相交部分,并且累加每一步采样得到的值,最后乘以相同的系数取平均值输出颜色。Texture3D大小512x512x415。Shader "Custom/XAddShader"{ Properties { _Volume("Texture3D", 3D) = "" {...原创 2018-10-31 18:21:41 · 2097 阅读 · 0 评论 -
ShaderToy上GLSL代码移植到unity平台总结
此处借用shadertoy上大神的glslShader https://www.shadertoy.com/view/MdX3zr方法一:自定义一个cginc文件来映射两种语言的数据类型,然后在shader中移植算法部分,最后在片段程序中输出颜色时调用mainImage(main)方法。GlslToHlsl.cginc#ifndef GlslToHlsl#define Glsl...原创 2018-11-07 18:26:33 · 2843 阅读 · 0 评论 -
从最简单的SurfaceShader开始层层解剖unity的标准光照模型
我们新建一个Standard Surface Shader,单击showgenerated code打开该表面着色器被编译成vfShader之后的代码。 代码框架如下:每个重要的pass的片段程序中都进行了标准光照模型的处理,我们提取其中一个打开Unity安装目录Editor\Data\CGIncludes中的UnityPBSLighting.cginc文件找到这两个方...原创 2018-11-08 16:49:30 · 907 阅读 · 0 评论 -
Unity之基于光线投射算法的体渲染技术(一)
本文参考《GPU编程与CG语言之阳春白雪下里巴人》光线投射算法原理: 光线投射方法是基于图像序列的直接体会之算法,从图像的每一个像素,沿固定方向(通常是视线方向)发射一条光线,光线穿越整个图像序列,并在这个过程中,对图像序列进行采样获取颜色信息,同时根据光线吸收模型将会颜色值进行累加,直至光线穿越整个图像序列,最后得到的颜色值就是渲染图像的颜色。实现流程:C#代码部...原创 2018-11-29 15:56:51 · 2580 阅读 · 5 评论 -
解决discard或clip后模型的视觉破面问题
在UnityShader中discard和clip是用在fs中的剔除像素的操作,可以很方便快速的实现模型的切割消融等效果,但单纯的discard(clip)操作会是图一这样的效果,很丑陋。加了反面渲染(cull off)之后是图二的效果,也很丑陋。图三图四就不一样了,像个实心的模型,高大上。代码如下: Shader "Unlit/CullShader"{ Pro...原创 2018-11-26 16:50:24 · 1617 阅读 · 0 评论 -
高斯模糊、均值模糊和边缘检测
参考文献https://www.cnblogs.com/evennl/p/3894438.html 传统的高斯模糊实现的原理是用三个通道(降采样通道、横向模糊通道和纵向模糊通道),降采样通道决定采样的步长,然后以当前uv为中心,当前步长为基准,采样左三右三及自身共七个点为横向模糊的pass,采样上三下三及自身七个点为纵向模糊的pass,每个采样值需乘以高斯分布曲线的取值(系数)加权...原创 2018-11-26 18:32:53 · 1804 阅读 · 0 评论 -
Unity内置BRDF光照模型的详解和实现
参考:http://www.cnblogs.com/wbaoqing/p/9810386.htmlhttps://blog.csdn.net/linuxheik/article/details/78662590BRDF(双向反射分布函数):光线照到一个物体产生了反射,由于该物体的表面不是理想的镜面,所以光线向各个方向反射(双向反射命名的含义),而且各个方向上的反射强度不同(反射包括漫反射和...原创 2018-12-04 17:32:40 · 4253 阅读 · 2 评论 -
Unity中使用设计模式之命令模式
首先实现命令模式的基本流程:需要三个类(命令发起者,具体命令类(继承自抽象命令类),命令执行者),命令执行操作放在命令执行者的类中,具体命令类来决定具体执行的是哪一个或哪些命令执行操作。using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public c...原创 2018-12-20 10:48:43 · 472 阅读 · 0 评论 -
Unity中使用设计模式之观察者模式
观察者模式描述了一夫多妻的关系,多个妻子(观察者)同时监视一个丈夫(被观察者),丈夫有什么小动作,妻子会收到通知或者采取一些行动。首先需要定义一个丈夫类,该类包含了结婚了离婚的操作(添加和删除观察者),以及妻子将会采取事件的回调Unity的委托和事件大大简化了该模式的实现,否则我们需要在丈夫类申请一个妻子容器,在Notify()中还要foreach所有妻子对象public class...原创 2018-12-20 14:34:33 · 386 阅读 · 1 评论