- 博客(40)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 Unity3D 相机围绕物体旋转的脚本
今天心血来潮,试着用ChatGPT给我生成了一个。而且实现路径也很简便,看来程序员用好它很重要啊。断断续续在网上和Unity官方案例以及某些商店里的插件带的脚本。开发Unity3D的程序这么多年,反复会用到相机围绕目标物体旋转的脚本。一般做法通过鼠标来控制,右键按住旋转,滚轮远近镜头,按住滚轮平移。下面把ChatGPT生成的代码贴出来,以备后续使用。
2023-04-21 16:05:05
752
原创 Unity3D里简单的读取配置文件的工具类
一个简单的读取配置文件的程序。建立一个setting.txt的文本文件放在StreamingAsset文件夹下。内容格式为 key=value的形式。以#符号开头作为注释。希望帮助到有需要的人。
2023-04-11 17:36:00
491
1
原创 关于ComputeShader和RayTracingShader中的sRGB问题
所以如果该RenderTexture用在了RWTexture类型的话,shader是不会进行自动ColorConversion(颜色空间变换)的,这就导致计算结果以Linear写入buffer,但是后续处理读取的时候会进行gamma变换,导致颜色变深。一般来讲,创建RenderTexture时,指定为sRGB类型的时候,也就是开启了ColorConvertion(颜色空间变换),在shader中对该RenderTexture进行读写的时候,会默认进行gamma矫正。
2022-09-05 10:43:35
968
原创 关于求直线交点的问题。
二维坐标系下,关于求两条之前的交点问题,在国内网站上查来查去都没找到比较清晰易懂的。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
824
1
原创 已知入射光线向量和出射光线向量,求折射面的交点位置
发现一个看似简单,但实际超级复杂的数学问题。就是关于光的折射问题。已知入射光线上任一点坐标,和折射光线的任意一点坐标,和这两点距离折射面的距离,求入射光线与折射面的交点。.........
2022-07-07 18:46:53
630
3
原创 基于unity自己写光追。
前几天写的博客好像访问量多了不少。最近听到裁员的消息挺多的。但是貌似搞unity的找工作还行。毕竟从事这个的相对少一点。前些年互联网大热,大家都一窝蜂的去学java,后台,前端这个那个的。你看现在人才冗余了吧,所以还是搞点冷门的专业比较好,不要凑热闹。曾国藩说过,众驶之地勿往。---------------------------------------------------------------------------------闲聊到此结束。最近工作关系,需要用unity实现
2022-04-08 09:50:37
4402
原创 playcanvas关于跨域的问题
这两台参与了一个小项目。需求是使用playcanvas制作一些粒子特效。本来以为是一个很简单的工作,就是在编辑器中制作一些粒子特效,改改参数,指一些贴图。结果完事以后提交给客户,说是客户不用编辑器开发,采用纯javascript调用,让我把里面的资源都导出来,供javascript调用。可把我难住了,想出一个办法,就是把config.json里面的关于assets的部分单独提取出来放在一个json文件里,然后调用引擎的app.configure()函数来加载。后来貌似成功了。但是对方要求
2022-03-15 15:11:59
967
原创 解决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
4797
原创 Unity3D里实现可以朝向另一目标广告牌(billboard)效果
昨天的工作中,想用一张图片贴在plane片上适当流星飞过天空的效果。本来以为是一个很简单的事情嘛!用广告牌就行了。结果面向摄像机是没问题,但是流星的头部怎么也不能朝向飞行的目标点。总是横着飞。本以为很简单的事情嘛,搞到半夜也没搞出来。rotation这玩意太抽象了。(谁能发明一个简单点的控制旋转的方法啊!!!)到底怎么样才能让一个物体的两个轴朝向不同的物体呢,看来lookat不行,还是得自己写啊。这个事情得分两步来实现:1. 让物体的某个轴朝向目标点。2.让物体的另一个轴朝向摄像机。(这一步
2022-02-25 14:50:31
4217
原创 关于相机旋转插值归一化的问题
在制作旋转相机的时候,经常会遇到从当前角度插值过度到特定角度,但是会存在角度大于360的情况,所以需要寻找到插值的最近角度来进行插值。所以需要对插值前的角度值和目标值进行归一化处理。都归一到-180到180之间,然后进行插值。直接上代码: AngleNormalize(angle,rangecenter=0){angle=(angle%6.28);if(angle<-3.14+rangecenter)...
2021-09-17 11:20:16
340
原创 关于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
654
原创 .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
381
原创 .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
7975
原创 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
1213
3
原创 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
1493
原创 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
208
原创 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
1137
原创 Unity实现平滑插值
对于那些不熟悉Unity的人来说,都知道每个脚本都有三个可以调用的update处理。需要更新处理的时候既可以调用Update,也可以调用更好用的LateUpdate。这两个都会用到全局变量Time.deltaTime来访问帧帧的时间间隔。FixedUpdate使用Time.fixedTimeDelta并以固定的时间步长运行,因此每帧可能会运行多次。关于重要的Lerp问题。这个问题似乎在论坛上一次又一次的被问到,如何实现完美平滑的插值和阻尼Damping。比如你有一个值a,并希望将其平滑地插值到另.
2020-05-25 11:20:08
4293
原创 Unity C# 脚本实现AES加密解密
/// <summary> /// AES加密 /// </summary> /// <param name="toEncryptArray">明文</param> /// <param name="key">密钥</param> /// <returns></...
2020-03-05 12:39:32
485
原创 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
784
原创 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
999
原创 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
576
原创 Unity3D 多平台读取StreamingAsset目录下文本文件的方法
由于StreamingAsset目录在安卓和IOS下,打包方式不同,文件读取方法不同。以下函数,经过反复测试,可以读取所有平台的文本文件。// 支持多平台的文本文件读取public static string GetFileStr(string path) { string jsonStr = "";#if UNITY_ANDROID || UNITY_IOS...
2020-03-05 09:30:46
2677
2
原创 Unity3D 脚本 搜索指定半径内发生Overlap的Collider
一般MonoBehaviour里想要获取一个Collider与其他哪些Collider发生交叉,需要至少有一方是rigidbody。但是如果都不是rigidbody的时候怎么处理呢,可以通过如下脚本来实现查询。Collider[] colliders = Physics.OverlapSphere(球心坐标,半径);...
2020-03-05 09:20:56
526
原创 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
1323
原创 Unity3D编写脚本从屏幕截取一个子区域保存为Texture2D,用于保存图片和当贴图都可以
GameObject UserCutBox; // 用于描述截取范围Texture2D fullscreenCapture ;Texture2D subarea;void Start() { rcttrans = GameObject.Find("UserCutBox").GetComponent<RectTransform>(); }//...
2020-03-05 09:06:27
1387
原创 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
1538
原创 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
165
原创 大型网站架构基础之笔记
大型网站架构基础之笔记架构范式分层架构 分布式架构 分布式应用与服务 分布式静态资源 分布式数据和存储 分布式计算Hadoop,MapReduce 业务拆分 集群部署 缓存部署 CDN 反向代理 本地缓存 分布式缓存 异步化 资源冗余 自动化2.架构五要素性能 网络性能 CDN,带宽 服务器硬件性能 CPU,内存,机械硬盘...
2019-08-19 18:35:35
171
原创 Python语言入门-运算符
数值运算符(+, -, *, /, %, **, //)Python有如下的运算符。+a # 整数-a # 负数a + b # 加法a - b # 减法a * b # 乘法a / b # 除法a % b # 余数a ** b # 求幂a...
2019-08-07 18:36:30
166
原创 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
174
原创 Python语言入门-变量,常量
变量Python的变量,是下划线(_)和英文数字的名称。最开始1文字必须是下划线(_)或者字母。value1 = 123_value1 = 123test_value = 123TEST_VALUE = 123常量Python不支持常量类型。习惯性的大写字母和下划线(_)的变量来命名。PI = 3.14MAX_BUFFER_SIZE = 1024...
2019-08-07 17:24:52
398
原创 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
115
原创 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
142
原创 Python语言入门-概要
Python入门-概要Python是一种轻量的脚本型语言特点:发音【paisong】 python英文是蟒蛇,巨蛇的意思。 是由荷兰人Guido van Rossum最早发明的。 Perl, PHP, Python合称为P语言。 和其他语言的{...}以及 begin ... end的代码块相比,Python是通过空格缩进来区分代码块。 和Ruby一样,整数(int)字...
2019-08-07 15:24:17
231
pdf批量转换为图片的小工具 通过命令行执行 无水印,完全自己编写的程序
2024-06-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人