Unity3D
VR技术小光
这个作者很懒,什么都没留下…
展开
-
Unity3D 相机围绕物体旋转的脚本
今天心血来潮,试着用ChatGPT给我生成了一个。而且实现路径也很简便,看来程序员用好它很重要啊。断断续续在网上和Unity官方案例以及某些商店里的插件带的脚本。开发Unity3D的程序这么多年,反复会用到相机围绕目标物体旋转的脚本。一般做法通过鼠标来控制,右键按住旋转,滚轮远近镜头,按住滚轮平移。下面把ChatGPT生成的代码贴出来,以备后续使用。原创 2023-04-21 16:05:05 · 683 阅读 · 0 评论 -
Unity 离轴相机 投影矩阵算法 XY双方向的
【代码】Unity 离轴相机 投影矩阵算法 XY双方向的。原创 2022-11-30 16:31:39 · 573 阅读 · 0 评论 -
解决Unity3D播放不了MP4格式视频的问题。
解决Unity3D播放不了有些MP4格式视频的问题原创 2022-11-15 14:35:55 · 3405 阅读 · 1 评论 -
关于ComputeShader和RayTracingShader中的sRGB问题
所以如果该RenderTexture用在了RWTexture类型的话,shader是不会进行自动ColorConversion(颜色空间变换)的,这就导致计算结果以Linear写入buffer,但是后续处理读取的时候会进行gamma变换,导致颜色变深。一般来讲,创建RenderTexture时,指定为sRGB类型的时候,也就是开启了ColorConvertion(颜色空间变换),在shader中对该RenderTexture进行读写的时候,会默认进行gamma矫正。原创 2022-09-05 10:43:35 · 912 阅读 · 0 评论 -
基于Unity ComputeShader 实现正向DIBR
Unity3D引擎下实现DIBR虚拟视点合成,原理以及源代码原创 2022-08-16 14:48:47 · 934 阅读 · 0 评论 -
已知入射光线向量和出射光线向量,求折射面的交点位置
发现一个看似简单,但实际超级复杂的数学问题。就是关于光的折射问题。已知入射光线上任一点坐标,和折射光线的任意一点坐标,和这两点距离折射面的距离,求入射光线与折射面的交点。.........原创 2022-07-07 18:46:53 · 519 阅读 · 2 评论 -
关于求直线交点的问题。
二维坐标系下,关于求两条之前的交点问题,在国内网站上查来查去都没找到比较清晰易懂的。A是起点坐标,B是方向向量。这时,考虑B到P的向量,参数方程为v2=B+t*v2。又根据向量加法的几何意义,可以得到,V1‘=V+tV2。所以两条直线的方向矢量为v1,v2,有A指向B的向量为v。所以只要知道t是多少,交点P的位置就可以知道啦。从B到P,v2的方向上,经过的多少倍距离t呢?所以,两条直线交于P,A,B点位于直线上。可以得到V1’,表示A到P的向量。所以,他们的外积=0。.........原创 2022-07-25 15:18:55 · 704 阅读 · 1 评论 -
Unity代码,根据入射向量求折射向量
unity下计算折射光线原创 2022-05-25 17:26:47 · 355 阅读 · 0 评论 -
基于Unity3D开发hololens应用-环境配置
基于unity开发hololense的环境搭建原创 2022-04-26 15:07:42 · 3145 阅读 · 0 评论 -
基于unity自己写光追。
前几天写的博客好像访问量多了不少。最近听到裁员的消息挺多的。但是貌似搞unity的找工作还行。毕竟从事这个的相对少一点。前些年互联网大热,大家都一窝蜂的去学java,后台,前端这个那个的。你看现在人才冗余了吧,所以还是搞点冷门的专业比较好,不要凑热闹。曾国藩说过,众驶之地勿往。---------------------------------------------------------------------------------闲聊到此结束。最近工作关系,需要用unity实现原创 2022-04-08 09:50:37 · 4292 阅读 · 0 评论 -
解决Unity3D中RenderTexture转存png文件,颜色变暗的问题
关于在Unity3D当中截屏内容,或者某个相机的内容,保存到图片文件的方法。一般的做法是将Camera的targetTexture指定一个RenderTexture,然后将这个RenderTexture转成PNG文件。下面是代码,一般搞Unity应该都能看懂。但是会有一个问题,就是输出的PNG文件会变暗。 Texture2D CaptureCamera(Camera camera, Rect rect, RenderTexture rt, string fname) {原创 2022-03-03 10:35:41 · 4222 阅读 · 0 评论 -
关于相机旋转插值归一化的问题
在制作旋转相机的时候,经常会遇到从当前角度插值过度到特定角度,但是会存在角度大于360的情况,所以需要寻找到插值的最近角度来进行插值。所以需要对插值前的角度值和目标值进行归一化处理。都归一到-180到180之间,然后进行插值。直接上代码: AngleNormalize(angle,rangecenter=0){angle=(angle%6.28);if(angle<-3.14+rangecenter)...原创 2021-09-17 11:20:16 · 289 阅读 · 0 评论 -
关于GPU Early-Z为什么会降低overdraw
看了好多博客的文章,都没有讲清楚到底GPUEarly-Z为什么会降低overdraw。一般渲染管线的渲染顺序如下:VS —>Assembly(三角形组装 )—>Clip—>屏幕映射—>Rasteration(光栅化,三角形像素扫描)—>PS—>AlphaTest—>ZBuffer(ZTest,ZWrite)—>StencilTest—>blendEarly-Z提到Early-Z就必须提对应的Late-Z:在图形管线中,逻辑上Dept.原创 2021-06-29 17:54:57 · 573 阅读 · 0 评论 -
.NET Core - 通过 .NET Core 将 .NET 迁移到跨平台
.NET Core - 通过 .NET Core 将 .NET 迁移到跨平台Phillip Carter| April 2016微软正在将 .NET Core 构建为 .NET 的新实现。 此 .NET Core 使开发人员能够为云优化的工作负载编写跨平台代码。 尽管许多开发人员对开源开发表示欢迎,但 .NET Core 的出现有什么特别的意义呢? 因此,本文将介绍 .NET Core 的现状及其目标、.NET Core 与 Microsoft .NET Framework 之间的关系以及可用于启.原创 2021-06-15 13:37:12 · 349 阅读 · 0 评论 -
Unity可以在移动端设备上实现相机的绕着目标点旋转,平移,缩放的脚本
分享一个Unity可以在移动端设备上实现相机的绕着目标点旋转,平移,缩放的脚本,经测试可用。using UnityEngine;using UnityEditor;using System.Collections;using System.Collections.Generic;using UnityEngine;[AddComponentMenu("Camera-Control/MobilemaxCamera")]public class MobilemaxCamera : M.原创 2020-11-06 17:03:00 · 1149 阅读 · 2 评论 -
C# 不同区间映射的函数 remap函数
这个函数用来实现两个分段区间之间的映射,假设有A,B两个分段区间的定义,给定一个在A内的值,可以求得在B内的相对起始点的百分比。两个区间的分段个数需要一致,数组的第一个元素固定为0,最后一个元素为最后一个区间的最大值。 public static float remap(float[] srcmap, float[] tomap, float refval) { if(srcmap.Length!=tomap.Length) { .原创 2020-08-13 14:26:19 · 1423 阅读 · 0 评论 -
unity surface shader 带模版缓冲的
Shader "Custom/StencilStandard"{ Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _NormalMap("NormalMap", 2D) = "bump" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5 ...原创 2020-06-16 11:16:28 · 186 阅读 · 0 评论 -
Unity自定义半透明surface材质shader
Shader "Custom/StencilStandardTransparentCull"{ Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _NormalMap("NormalMap", 2D) = "bump" {} _BumpScale("Bump Scale", Float) = 1...原创 2020-06-16 10:45:04 · 1069 阅读 · 0 评论 -
Unity C# 脚本实现AES加密解密
/// <summary> /// AES加密 /// </summary> /// <param name="toEncryptArray">明文</param> /// <param name="key">密钥</param> /// <returns></...原创 2020-03-05 12:39:32 · 427 阅读 · 0 评论 -
C# 将文字的16进制码形式转为文字(ASCII)
// 将文字的16进制码形式转为文字(ASCII)public static string HTS(string hs, Encoding encode) { string strTemp = ""; byte[] b = new byte[hs.Length / 2]; for (int i = 0; i < hs.Length ...原创 2020-03-05 11:06:15 · 720 阅读 · 0 评论 -
Unity3D 从某个节点的所有子节点中递归搜索特定名称的节点 的脚本
public class SearchChild : MonoBehaviour{ static Dictionary<string, Transform> buffer = new Dictionary<string, Transform>(); private static Transform FindChild(Transform FatherT...原创 2020-03-05 09:36:46 · 934 阅读 · 0 评论 -
Unity3D 显示FPS的脚本
public class FPS : MonoBehaviour{ public static float f_Fps; public float f_UpdateInterval = 0.5f; //每个0.5秒刷新一次 private float f_LastInterval; //游戏时间 private int i_Frames = 0;//帧数...原创 2020-03-05 09:32:49 · 534 阅读 · 0 评论 -
Unity3D 多平台读取StreamingAsset目录下文本文件的方法
由于StreamingAsset目录在安卓和IOS下,打包方式不同,文件读取方法不同。以下函数,经过反复测试,可以读取所有平台的文本文件。// 支持多平台的文本文件读取public static string GetFileStr(string path) { string jsonStr = "";#if UNITY_ANDROID || UNITY_IOS...原创 2020-03-05 09:30:46 · 2609 阅读 · 2 评论 -
Unity3D 脚本 搜索指定半径内发生Overlap的Collider
一般MonoBehaviour里想要获取一个Collider与其他哪些Collider发生交叉,需要至少有一方是rigidbody。但是如果都不是rigidbody的时候怎么处理呢,可以通过如下脚本来实现查询。Collider[] colliders = Physics.OverlapSphere(球心坐标,半径);...原创 2020-03-05 09:20:56 · 496 阅读 · 0 评论 -
Unity3D下打开摄像头,将摄像头的内容作为Texture2D显示在场景中
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;struct CameraSetting{ public int width; public int height; public int framerate;}...原创 2020-03-05 09:12:52 · 1223 阅读 · 0 评论 -
Unity3D下用脚本存储Texture2D到硬盘jpg文件
public void writeCaptureDataToFile(Texture2D texture, string dataPath, string filename) { string path_full = dataPath + filename + ".jpg"; // 存入jpg文件 StartCoroutine(sa...原创 2020-03-05 08:48:27 · 1447 阅读 · 0 评论