自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(40)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Unity3D 相机围绕物体旋转的脚本

今天心血来潮,试着用ChatGPT给我生成了一个。而且实现路径也很简便,看来程序员用好它很重要啊。断断续续在网上和Unity官方案例以及某些商店里的插件带的脚本。开发Unity3D的程序这么多年,反复会用到相机围绕目标物体旋转的脚本。一般做法通过鼠标来控制,右键按住旋转,滚轮远近镜头,按住滚轮平移。下面把ChatGPT生成的代码贴出来,以备后续使用。

2023-04-21 16:05:05 597

原创 Unity3D里简单的读取配置文件的工具类

一个简单的读取配置文件的程序。建立一个setting.txt的文本文件放在StreamingAsset文件夹下。内容格式为 key=value的形式。以#符号开头作为注释。希望帮助到有需要的人。

2023-04-11 17:36:00 321 1

原创 Unity 离轴相机 投影矩阵算法 XY双方向的

【代码】Unity 离轴相机 投影矩阵算法 XY双方向的。

2022-11-30 16:31:39 514

原创 解决Unity3D播放不了MP4格式视频的问题。

解决Unity3D播放不了有些MP4格式视频的问题

2022-11-15 14:35:55 2917 1

原创 关于ComputeShader和RayTracingShader中的sRGB问题

所以如果该RenderTexture用在了RWTexture类型的话,shader是不会进行自动ColorConversion(颜色空间变换)的,这就导致计算结果以Linear写入buffer,但是后续处理读取的时候会进行gamma变换,导致颜色变深。一般来讲,创建RenderTexture时,指定为sRGB类型的时候,也就是开启了ColorConvertion(颜色空间变换),在shader中对该RenderTexture进行读写的时候,会默认进行gamma矫正。

2022-09-05 10:43:35 861

原创 基于Unity ComputeShader 实现正向DIBR

Unity3D引擎下实现DIBR虚拟视点合成,原理以及源代码

2022-08-16 14:48:47 907

原创 关于求直线交点的问题。

二维坐标系下,关于求两条之前的交点问题,在国内网站上查来查去都没找到比较清晰易懂的。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 613 1

原创 已知入射光线向量和出射光线向量,求折射面的交点位置

发现一个看似简单,但实际超级复杂的数学问题。就是关于光的折射问题。已知入射光线上任一点坐标,和折射光线的任意一点坐标,和这两点距离折射面的距离,求入射光线与折射面的交点。.........

2022-07-07 18:46:53 409 2

原创 Unity代码,根据入射向量求折射向量

unity下计算折射光线

2022-05-25 17:26:47 322

原创 基于Unity3D开发hololens应用-环境配置

基于unity开发hololense的环境搭建

2022-04-26 15:07:42 3039

原创 基于unity自己写光追。

前几天写的博客好像访问量多了不少。最近听到裁员的消息挺多的。但是貌似搞unity的找工作还行。毕竟从事这个的相对少一点。前些年互联网大热,大家都一窝蜂的去学java,后台,前端这个那个的。你看现在人才冗余了吧,所以还是搞点冷门的专业比较好,不要凑热闹。曾国藩说过,众驶之地勿往。---------------------------------------------------------------------------------闲聊到此结束。最近工作关系,需要用unity实现

2022-04-08 09:50:37 4177

原创 playcanvas关于跨域的问题

这两台参与了一个小项目。需求是使用playcanvas制作一些粒子特效。本来以为是一个很简单的工作,就是在编辑器中制作一些粒子特效,改改参数,指一些贴图。结果完事以后提交给客户,说是客户不用编辑器开发,采用纯javascript调用,让我把里面的资源都导出来,供javascript调用。可把我难住了,想出一个办法,就是把config.json里面的关于assets的部分单独提取出来放在一个json文件里,然后调用引擎的app.configure()函数来加载。后来貌似成功了。但是对方要求

2022-03-15 15:11:59 918

原创 解决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 3669

原创 Unity3D里实现可以朝向另一目标广告牌(billboard)效果

昨天的工作中,想用一张图片贴在plane片上适当流星飞过天空的效果。本来以为是一个很简单的事情嘛!用广告牌就行了。结果面向摄像机是没问题,但是流星的头部怎么也不能朝向飞行的目标点。总是横着飞。本以为很简单的事情嘛,搞到半夜也没搞出来。rotation这玩意太抽象了。(谁能发明一个简单点的控制旋转的方法啊!!!)到底怎么样才能让一个物体的两个轴朝向不同的物体呢,看来lookat不行,还是得自己写啊。这个事情得分两步来实现:1. 让物体的某个轴朝向目标点。2.让物体的另一个轴朝向摄像机。(这一步

2022-02-25 14:50:31 4087

原创 关于相机旋转插值归一化的问题

在制作旋转相机的时候,经常会遇到从当前角度插值过度到特定角度,但是会存在角度大于360的情况,所以需要寻找到插值的最近角度来进行插值。所以需要对插值前的角度值和目标值进行归一化处理。都归一到-180到180之间,然后进行插值。直接上代码: AngleNormalize(angle,rangecenter=0){angle=(angle%6.28);if(angle<-3.14+rangecenter)...

2021-09-17 11:20:16 242

原创 关于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 536

原创 .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 325

原创 .NET Core 和 .NET Framework 的比较

.NET Core 和 .NET Framework 的比较重要提示:Linux 上的 .NET Core 是早期采用者产品(Early Adopter Product; EAP) 功能。 该产品的目的是测试和反馈这些新功能。 请注意,文件锁并非在所有情况下都有效,并且可能会引发异常或被忽略。 此功能将继续开发,修补程序更新和将来的版本将提供其他接口。 有关详细信息,请联系 Micro FocusSupportLine。本主题总结了 .NET Core 和 .NET Framework 的相似..

2021-06-15 11:51:38 7709

原创 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 1108 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 1358

原创 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 171

原创 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 1016

原创 Unity实现平滑插值

对于那些不熟悉Unity的人来说,都知道每个脚本都有三个可以调用的update处理。需要更新处理的时候既可以调用Update,也可以调用更好用的LateUpdate。这两个都会用到全局变量Time.deltaTime来访问帧帧的时间间隔。FixedUpdate使用Time.fixedTimeDelta并以固定的时间步长运行,因此每帧可能会运行多次。关于重要的Lerp问题。这个问题似乎在论坛上一次又一次的被问到,如何实现完美平滑的插值和阻尼Damping。比如你有一个值a,并希望将其平滑地插值到另.

2020-05-25 11:20:08 3576

原创 Unity C# 脚本实现AES加密解密

/// <summary> /// AES加密 /// </summary> /// <param name="toEncryptArray">明文</param> /// <param name="key">密钥</param> /// <returns></...

2020-03-05 12:39:32 376

原创 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 646

原创 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 891

原创 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 516

原创 Unity3D 多平台读取StreamingAsset目录下文本文件的方法

由于StreamingAsset目录在安卓和IOS下,打包方式不同,文件读取方法不同。以下函数,经过反复测试,可以读取所有平台的文本文件。// 支持多平台的文本文件读取public static string GetFileStr(string path) { string jsonStr = "";#if UNITY_ANDROID || UNITY_IOS...

2020-03-05 09:30:46 2547 2

原创 Unity3D 脚本 搜索指定半径内发生Overlap的Collider

一般MonoBehaviour里想要获取一个Collider与其他哪些Collider发生交叉,需要至少有一方是rigidbody。但是如果都不是rigidbody的时候怎么处理呢,可以通过如下脚本来实现查询。Collider[] colliders = Physics.OverlapSphere(球心坐标,半径);...

2020-03-05 09:20:56 468

原创 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 1158

原创 Unity3D编写脚本从屏幕截取一个子区域保存为Texture2D,用于保存图片和当贴图都可以

GameObject UserCutBox; // 用于描述截取范围Texture2D fullscreenCapture ;Texture2D subarea;void Start() { rcttrans = GameObject.Find("UserCutBox").GetComponent<RectTransform>(); }//...

2020-03-05 09:06:27 1301

原创 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 1390

原创 JAVA相关技术术语

Spring-MVC Spring SpringBoot Mybatis 数据库 分布式消息 JSP Servelet Webservice Ajax Jquery Maven Git MySql NoSql:Redis,MongoDb JVM原理 多线程编程 Struts MQ Linux命令 Hive,Storm,Spark VI Docker H...

2019-08-19 18:56:42 137

原创 大型网站架构基础之笔记

大型网站架构基础之笔记架构范式分层架构 分布式架构 分布式应用与服务 分布式静态资源 分布式数据和存储 分布式计算Hadoop,MapReduce 业务拆分 集群部署 缓存部署 CDN 反向代理 本地缓存 分布式缓存 异步化 资源冗余 自动化2.架构五要素性能 网络性能 CDN,带宽 服务器硬件性能 CPU,内存,机械硬盘...

2019-08-19 18:35:35 125

原创 Python语言入门-运算符

数值运算符(+, -, *, /, %, **, //)Python有如下的运算符。+a # 整数-a # 负数a + b # 加法a - b # 减法a * b # 乘法a / b # 除法a % b # 余数a ** b # 求幂a...

2019-08-07 18:36:30 132

原创 Python语言入门-列表,元组,字典

列表(list)用[...]表示列表(list)。a = [10, 20, 30, 40]多行记述的方式,最后一个逗号可省略。colors = [ 'red', 'green', 'blue',]列表的元素类型可以不同。a = [10, 'ABC']列表的遍历用for。a = [1, 2, 3, 4, 5]f...

2019-08-07 18:15:46 131

原创 Python语言入门-变量,常量

变量Python的变量,是下划线(_)和英文数字的名称。最开始1文字必须是下划线(_)或者字母。value1 = 123_value1 = 123test_value = 123TEST_VALUE = 123常量Python不支持常量类型。习惯性的大写字母和下划线(_)的变量来命名。PI = 3.14MAX_BUFFER_SIZE = 1024...

2019-08-07 17:24:52 294

原创 Python语言入门-数值,字符串,类型

整数(int)整数(int)写法num = 1234 # 正整数0o(0O),0x(0X),0b(0B)分别为八进制,十六进制,二进制数。num = 0o777 # 八进制num = 0xffff # 十六进制num = 0b11000100 # 二进制长整数(long)长整型(long)比(int)范围大...

2019-08-07 16:56:43 87

原创 Python语言入门-基本语法

基本语法Hello world!Python下输出 Hello world!的写法如下。文件的扩展名为 .py(例如: test.py)。Pythonprint "Hello world!"但是,在Python 3下,这种写法是错误的。需要按照如下的写法。(后文,基本都是 Python 2.7来进行说明。)Pythonprint("Hello wor...

2019-08-07 16:14:10 102

原创 Python语言入门-概要

Python入门-概要Python是一种轻量的脚本型语言特点:发音【paisong】 python英文是蟒蛇,巨蛇的意思。 是由荷兰人Guido van Rossum最早发明的。 Perl, PHP, Python合称为P语言。 和其他语言的{...}以及 begin ... end的代码块相比,Python是通过空格缩进来区分代码块。 和Ruby一样,整数(int)字...

2019-08-07 15:24:17 194

简单的画面设计范例

简单的画面设计范例

2013-07-02

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

TA关注的人

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