![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity 3D
彥霖
这个作者很懒,什么都没留下…
展开
-
Unity 3D :解 RAW 8bit 高速版 ( 可調整大小 )
人類看得懂的 C # :using System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;using UnityEngine.UI;public class RAW8_Decoder : MonoBehaviour{ public RawImage img;...原创 2018-11-06 23:19:55 · 594 阅读 · 0 评论 -
Unity 3D : 解富士 RAF 檔案
我使用 X-H1 無反破解到一半,可以執行與出圖,但效果可能不是很好未完待續…using System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;using UnityEngine.UI;public class Decoder : MonoBehaviour...原创 2018-09-03 08:18:44 · 296 阅读 · 0 评论 -
Unity 3D : 多線程傳值 + 多線程同步結束
功能如標題,沒甚麼能多說的,你們值接看代碼&結果就能理解了哈延伸閱讀:本篇文章只是簡單範例,實際應用可以參考這篇https://blog.csdn.net/weixin_38884324/article/details/80599967C # :using UnityEngine;using System.Threading;public class Test :...原创 2018-06-06 20:11:20 · 250 阅读 · 0 评论 -
Unity 3D : 多線程將 byte [] 陣列 轉成 int [] 陣列
前言 :高速將 byte[] 轉 int [],主要是讀取大檔案,一些函式需要用int[]處理,那這時就可以用上。啥? 哪個函式需要 int[] 這麼古怪的方式處理? Unity ComputeShader …要用 GPU 處理檔案解碼,那就要轉成 int [] 陣列了….你們可以比較單線程與多線程的速度差異,多線程大約快 2 倍以上。我寫成一個函數,你們直接拿來用就可以。...原创 2018-06-06 19:43:18 · 442 阅读 · 0 评论 -
Unity 各種變數在 Inspector 顯示的範圍條件
直接看程式碼吧,BJ4using System.Collections;using System.Collections.Generic;using UnityEngine;public class Test : MonoBehaviour{ // 以下會顯示在 Unity Inspector 面板中 ------------- public int A;...原创 2018-05-29 10:44:48 · 545 阅读 · 0 评论 -
Unity 滑鼠進入 RawImage 範圍內,變成十字鼠 ( 用 RawImage 來畫 )
前言:這篇文章是教你做一個在 RawImage 內的滑鼠 (鼠標),這是由上一篇文章改的 ( http://blog.csdn.net/weixin_38884324/article/details/79312392 ),想要知道更多細節可以參考上篇文章,就結果來說這篇改進了很多功能,例如:圖片移動,長寬改變,Anchors 或 Pivot 改變,都能正確顯示。注意:另外這裡用 T...原创 2018-02-11 20:08:32 · 458 阅读 · 0 评论 -
Unity 3D : RAW 10 bit 轉 RGB
前言 :建議先看這篇文章https://blog.csdn.net/weixin_38884324/article/details/80457594RAW 轉 RGB 解析度會是原圖的四分之一,這篇程式碼就是將四個像素合併成一個的範例C # :using System.IO;using UnityEngine;using UnityEngine.UI;public cl...原创 2018-05-26 01:04:52 · 1104 阅读 · 0 评论 -
Unity 3D : 讀取 RAW10 格式並顯示
前言 :此範例使用 RAW 10 bit。不說廢話,直接運行 & 看程式碼吧…C # :using System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;using UnityEngine.UI;public class NewBehaviourSc...原创 2018-05-25 22:19:10 · 1421 阅读 · 2 评论 -
Unity 3D : C# 解析 H.264 ( SPS / PPS / IDR )
由於我前兩篇文章已經有寫解析 SPS 與 PPS ,所以這篇主要是解析 IDR ,不過要解析 IDR 之前,必須先取得 SPS 與 PPS 內的值才能進行解析。所以這篇文章同時解析三種 NALU,並且同時改進之前的解析方法。C #:using System.Collections;using System.Collections.Generic;using UnityEngine;...原创 2018-05-06 19:15:30 · 1295 阅读 · 0 评论 -
Unity 3D : 實作 BMP 編碼器 ( 以 Byte 字節編碼 )
前言 :Unity 3D 的 Texturd2D 只有 PNG, JPG, EXR 這三種編碼,如果你想要 BMP 編碼,無外乎只能依靠第三方庫,不然就是自己實作編碼器…我這裡採取了後者,俗話說不要重複造輪子,但這句對我沒用,因為我要的是 ” 跨平台 ” 阿,你的輪子可以跨平台 ? ( 笑 ) ,弄懂算法,你想要移植到哪個平台都行,Android / Linux / Windows / i...原创 2018-06-07 17:22:58 · 658 阅读 · 0 评论 -
Unity 3D : 實作 BMP 解碼器,讀取並顯示 ( 以 Byte 字節解析 )
網路上很多人讀寫 BMP 都是直接呼叫 API 或 Library ,並不懂其中的原理,而且跨平台也麻煩…所以我這篇文章是自己手動寫 BMP 解碼器,讓大家清楚其中的奧妙。讓我們先看執行結果吧,左邊是顯示 BMP 的標頭資訊,右邊則是年輕的身體…,阿不對,是讀取BMP之後顯示的結果啦哈執行結果 :C # :using System.Collections;usin...原创 2018-06-07 15:18:15 · 956 阅读 · 2 评论 -
Unity 3D : 實作 YUV 影片播放解碼器 ( YUV Video Player )。
本範例是一個簡單的 YUV 影片播放器 ( YUV Video Player )。這次片源採用 FFMPEG 直接將一般 H264 MP4 Video 轉成 YUV420 格式,附檔名是 *.yuv。YUV 格式在輸入之前必須先輸入影片的 寬 ( Width ) & 高 ( Height ),由於 YUV 檔是無頭檔參數來描述寬高,如果沒有輸入寬高,基本上是無法解碼的 (畫面不會正...原创 2018-06-10 02:14:24 · 1754 阅读 · 0 评论 -
Unity 3D : RAW 10 bit 轉 RGB ( GPU 版 ) [ 新版本 ]
前言 :這是改進之前這篇文章https://blog.csdn.net/weixin_38884324/article/details/80464484之前寫的方式不完美,所以這次出了一個改進板,性能提升好幾個檔次。改進之前呼叫兩次 ComputeShader (一次處理 RAW, 一次處理 RGB),而這次新版本只要呼叫一次 ComputeShader 就好,改進了效能,避免 C...原创 2018-06-13 00:30:01 · 903 阅读 · 0 评论 -
Unity 3D :卡爾曼濾波 ( Kalman Filter )
前言 :卡爾曼濾波,沒啥好介紹的,網路上應該有很多人做介紹,但是真正能用的程式碼太少,所以我做一個 C# Library 給大家使用,貢獻世界。KalmanFilter_Test.cs 是執行腳本 ( 你的程序邏輯 ) ,KalmanFilter.cs 則是 Library。至於使用方法可以直接看 KalmanFilter_Test.cs,比我在上面這講廢話來的快。執行結果 :Kalma...原创 2018-09-17 22:20:16 · 2471 阅读 · 0 评论 -
Unity 3D : 自動白平衡 : 動態閥值
前言 :簡易動態閥值白平衡,這個範例我沒有做切成區塊來做,亮度是取最大值而不是前 10% 亮度,不過效果還行,湊合看吧這個範例比較特別的是,最後有做 Y 增益調整,防止過曝,且亮度值與原圖相同 ( 調整後的 Y 與原圖 Y 相同 )運行前 :運行後 :C # :using UnityEngine;using UnityEngine.U...原创 2018-09-07 12:45:51 · 555 阅读 · 0 评论 -
Unity 3D : 解 3D LUT Cube 檔案
前言 :解 3D LUT Cube 檔案執行結果 :Run.csusing System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;public class Run : MonoBehaviour{ public Transform par;...原创 2018-09-10 20:09:13 · 2041 阅读 · 0 评论 -
Unity 3D : 10~16bit RAW 圖像轉 8bit 圖像
這段程式碼可以把 10bit, 12bit, 14bit, 16bit 轉成 8bit。用途就不用我說明了,我想大家都知道,雖然我覺得會做 Unity 3D 的人估計沒啥人會看我這篇文章哈。這是給特殊需求的人使用的,例如我…。C# 程式碼 :using System.Collections;using System.Collections.Generic;using System.IO...原创 2018-11-06 22:11:41 · 1934 阅读 · 0 评论 -
Unity 3D : Texture2D 縮放大小
方法一 :Texture2D ScaleTexture(Texture2D source, float targetWidth, float targetHeight){ Texture2D result = new Texture2D((int)targetWidth, (int)targetHeight, source.format, false); floa...原创 2018-10-21 20:14:22 · 6129 阅读 · 3 评论 -
Unity 3D : 陣列補洞
前言 :假設我有一個陣列 [ 1, 2, 0, 0, 0, 6, 7 ],我想把中間的 0 補起來,可以用下面幾種方法。方法一 ( 用下一個值補起來 ) :void Start(){ int[] table = { 1, 2, 0, 0, 0, 6, 7 }; for (int i = 0; i < table.Length - 1; i++) ...原创 2018-10-17 02:08:29 · 144 阅读 · 0 评论 -
Unity 3D : 高斯核
應用 :同樣是高斯核,但維度不同,就可以做出很多變化,產生很多玩法 :一維高斯核 : 統計分析二維高斯核 : 將圖片做高斯模糊三維高斯核 : 點光源一維高斯核公式 :f(x)=12πσe−(μ−x)22σ2f(x)=\dfrac{1}{\sqrt{2\pi\sigma}}e-\dfrac{(\mu-x)^2}{2\sigma^2}f(x)=2πσ1e−2σ2(μ−x)2同等 ...原创 2018-10-13 19:33:11 · 538 阅读 · 1 评论 -
Unity 3D : 三線性插值
八個點的對應關係 :公式 :注意這裡的 x, y 不是實際的 x y座標,而是 “插值的相對位置”。例如我要在 9 與 10 中插值四個點 9.00, 9.25, 9.50, 9.75 ,那麼 x 就是 0.00, 0.25, 0.50, 7.50 。Vxyz = V000 (1 - x) (1 - y) (1 - z) + ...原创 2018-09-10 17:35:58 · 661 阅读 · 1 评论 -
Unity 3D : LSC 基本原理
前言 :LSC ( Lens Shading Correction ) 鏡頭暗角校正。鏡頭可以看做是一個凸透鏡,光線均勻進入時,成像面會產生中間亮且四周暗的情況,例如下圖 :而我們在拍攝照片時,是不希望產生暗角的,所以需要透過軟件算法校正的,而以下這張圖是我由上圖校正過後的結果 :整個平均有沒有 !?好啦,我們差不多要來看程式碼了這個程式碼主要只是講 LSC 的算法重點...原创 2018-07-25 13:09:34 · 1473 阅读 · 0 评论 -
Unity 3D : Catmull-Rom 樣條插值
前言 :Catmull-Rom 樣條插值 ( Catmull-Rom Spline Interpolating ) 是一種常用方法,例如我們要做人物移動,要沿路經過所有指定的位置,如果用直線插值,在移動中碰到轉彎時會很不自然,最好像個可以平滑轉彎,那麼就會需要用到曲線差值。而 Catmull-Rom 的優勢是保證曲線經過指定位置,像是貝茲曲線他就不會經過指定位置,在一些場合下 Catmul...原创 2018-08-01 12:53:07 · 2925 阅读 · 0 评论 -
Unity 3D : C# 解析 H.264 PPS 幀
大部分解析原理與 SPS 幀相同,但需要注意的是,PSP 幀加入了使用 “有符號的指數哥倫布編碼” ( 就是包含正數與負數的意思 )。C # :using System.Collections;using System.Collections.Generic;using UnityEngine;public class PPSDecoder : MonoBehaviour...原创 2018-04-29 20:10:02 · 933 阅读 · 0 评论 -
Unity 3D : C# 實現 H.264 中的指數哥倫布編碼
標題說得很清楚了,大概就是這樣。需要注意的是本範例使用指針,所以有些地方會出現 unsafe 的區塊。廢話不多說,直接貼代碼:C #:using System.Collections;using System.Collections.Generic;using System;using UnityEngine;public class GolombEncoder : ...原创 2018-04-29 16:25:14 · 173 阅读 · 0 评论 -
永遠最新版 Android SDK
如果你跟我一樣上了 Google Android 網站後怎麼都找不到SDK下載點,那這篇文章可以幫助到你哈不管未來版本怎麼變,以下連結永遠指向最新版 Android SDK※ 此來源是 Google 官方網址,比較不用擔心檔案被竄改或塞病毒問題( 千萬不要從第三方網站下載,很多都有塞病毒的 )Windows :https://dl.google.com/android/reposi...原创 2018-05-19 15:01:04 · 594 阅读 · 0 评论 -
Unity 3D : C# 解析 H.264 SPS 幀
前言 ( 廢話 ):嗯,別問我為啥用 Unity 搞 H.264,沒為什麼,純粹只是我喜歡 Unity 而已不喜歡 FFMPEG 的人有福了,我們直接從 Bit 流解析 H.264,不用第三方插件,也能很好的跨平台,是不是很爽 ?而且大部分的人都是用 C/C++ 來做解碼,用 C# 等物件導向語言做的人還挺少人做的,所以我來為世界貢獻一份心力,哈哈SPS 是甚麼我就不詳細解釋了 (...原创 2018-04-28 01:36:16 · 1461 阅读 · 5 评论 -
VR 數學整理
加速度传感器检测物体倾角的原理 :http://www.cnblogs.com/21207-iHome/p/6059260.html獲取加速計之姿態 :https://blog.kuoe0.tw/posts/2014/04/17/get-the-orientation-of-accelerometer/卡尔曼滤波原理及实现 :https://blog.csdn.net/lyba...原创 2018-04-08 16:46:11 · 231 阅读 · 0 评论 -
Unity 用陀螺儀+加速度計 控制 Camera 旋轉
這個是用 陀螺儀+加速度計 同時採樣,避免陀螺儀飄移,但是目前只能避免 X, Z 的漂移,所以 Y 還是會飄移,那是因為加速度計無法判斷 Y 的旋轉,未來會加入 “電子指南針(磁力計)” 來校正 Y。目前用 X, Z 在一些高端的手機上其實跑的也很穩,不怎麼飄,所以還是可以用的,你們玩玩看吧,把這個腳本掛在 Camera 或 父物件上,在手機上就能按照你想要的旋轉啦。using System;...原创 2018-04-08 02:27:37 · 2197 阅读 · 0 评论 -
Unity : Texture2D 的 GPU 版
這行程式碼是重點,用起來跟 Texture2D 一樣方便,而且速度比 Texture2D 快好幾倍GPU_Texture2D t = new GPU_Texture2D (shader, useGPU, width, height);C # : Demo_GPU_Texture2D.csusing System.Collections;using System.Collect...原创 2018-03-02 10:36:04 · 1501 阅读 · 0 评论 -
Unity 兩點之間畫線
前言我們都知道兩點能夠連成一直線,要畫兩點是很簡單的,但是兩點之間的所有座標呢? 沒有這些你怎麼畫線 ? 靠,問題瞬間變得複雜起來…。不過好家在,我幫大家寫了一個簡單的算法可以參考,你們就拿去用吧,賺錢了記得分我一點就行。簡單版 C #using UnityEngine;using UnityEngine.UI;public class NewBehaviourScrip...原创 2018-02-26 15:32:15 · 1247 阅读 · 0 评论 -
Unity C# 量測執行時間
Unity 或 C# 都能 Run,不多說了,直接放程式碼:C #System.Diagnostics.Stopwatch time = new System.Diagnostics.Stopwatch ();time.Start ();// 這裡放你要測試的程式碼time.Stop ();print("執行 " + time.Elapsed.TotalSeconds + " ...原创 2018-02-28 13:40:39 · 496 阅读 · 0 评论 -
Unity 滑鼠進入圖片後,如果移動,則打印座標
恩,標題很爛,因為我還在想…。標題雖然爛,但下面說明應該很清楚這是幹嘛的。如果你有好標題觀迎跟我說。前言:這裡有兩個功能: 1. 滑鼠進入圖片後,如果移動滑鼠,則每一次 Update 將執行一次 2. 雙座標系統:視窗座標 + 圖片座標 ( 下圖有說明 )第一點我想也不用再多做解釋,至於第二點的視窗座標也不用多說了 (兩個都不說那到底你要說啥?),我們直接說重點:”圖片...原创 2018-02-11 17:53:12 · 476 阅读 · 0 评论 -
Unity 滑鼠 ( 鼠標, Mouse ) 監聽事件 ( Event) 的三種方法
前言:我看網路其他文章都只有展示其中一種方法,而且每種方法都很零散,所以我今天要集大成,造福群眾。好了,廢話不多說,下面為大家展示 Unity 滑鼠 ( 鼠標, Mouse ) 進入物件時的三種監聽方法,每種各有優缺點,請自行參考與使用。當然簡單的滑鼠進入監聽肯定滿足不了你,你可能還需要監聽 點擊 (Click), 拖拉 ( Drag ), 離開 ( Exit )… 等等高級操作,所以我下...原创 2018-02-11 14:33:53 · 2996 阅读 · 0 评论 -
Unity 使用 GPGPU 計算,使用 ComputeShader + ComputeBuffer
如果你會看這篇文章,代表你玩 Unity 已經玩到很深入了,CPU 計算已經不能滿足你,這時你不得不把注意力轉到 GPU 身上。GPU 的介紹就不用我多說了,就是超越CPU的存在。如果用 Texture2D 來畫你想要的圖案速度會慢的驚人,如果你用 Shader ( GPU ) 來畫將會快上幾千倍,好了,唬爛就到此為止,我們回歸正題。原创 2018-02-07 21:16:40 · 7268 阅读 · 2 评论 -
Unity 3D : ComputeShader 全面詳解
很多人一定搞不懂 SV_GroupID, SV_GroupThreadID, SV_GroupIndex, SV_DispatchThreadID 這些是啥,今天我來為大家做一個比較全面的說明。[numthreads(32, 32, 1)]代表: 一個 Group 分配幾個 Thread,X * Y * Z 不得超過 1024 這同時也是一個 Group 的長寬高//sha...原创 2018-06-04 17:21:30 · 10406 阅读 · 9 评论 -
ComputeShader 資源 ( 外部好文 )
CG Unity : https://en.wikibooks.org/wiki/Cg_Programming/Unity計算最大亮度像素 : https://en.wikibooks.org/wiki/Cg_Programming/Unity/Computing_the_Brightest_Pixel將 ComputeShader 用於 Camera https://en.wiki...原创 2018-05-28 18:12:21 · 492 阅读 · 1 评论 -
Unity 3D : RAW 10 bit 轉 RGB ( GPU 版 ) [ 舊版本 ]
前言 :也許你想先看 CPU 版,任意門 : https://blog.csdn.net/weixin_38884324/article/details/80458545C # :using System.IO;using UnityEngine;using UnityEngine.UI;public class GPU_RAW_To_RGB : MonoBehavio...原创 2018-05-26 19:55:51 · 382 阅读 · 0 评论 -
Unity 3D : Catmull-Rom 曲線調整小工具
前言 :本範例使用的 CatmullRom.cs 請參考這篇 ( 也建議先讀讀這篇原理,再來看這篇文章 ) :https://blog.csdn.net/weixin_38884324/article/details/81328803執行結果 :C # :using System.Collections;using System.Collections.Generic;...原创 2018-08-01 14:50:55 · 405 阅读 · 0 评论 -
Unity 3D : TIFF 8bit / 16bit / II / MM 解碼器 範例
前言 :此程式碼可以解 TIFF,且 II 或 MM 排列都能解。程式碼有點亂哈,湊合看吧,以後有時間我再整理一下。執行結果 :C # 程式碼 :using System.Collections;using System.Collections.Generic;using System.IO;using UnityEngine;using UnityEngine...原创 2018-08-21 11:40:38 · 1044 阅读 · 0 评论