2017.08.04 通過openGL紋理在Unity中獲取攝像機影象
主要程式碼如下 :
IEnumerator Start()
{Image_left = new Texture2D(m_videoWidth, m_videoHeight, TextureFormat.ARGB32, false); //在Unity中建立2D紋理
Image_left.filterMode = FilterMode.Point; //設定引數
Image_left.Apply();
GetComponent<Renderer>().material.SetTexture("_mainTex", Image_left);
GetComponent<Renderer>().material.SetFloat("_tex_start", 0.0f);
GetComponent<Renderer>().material.SetFloat("_tex_end", 1.0f);
GetComponent<Renderer>().material.SetFloat("_tex_offset", 0.0f);
NativeLib.SetCamTex(Image_left.GetNativeTexturePtr()); //自定義的一個dll外掛Nativelib,功能是將Image_left的紋理指標傳遞到openGL中
yield return StartCoroutine("CallPluginAtEndOfFrames");
}
private IEnumerator CallPluginAtEndOfFrames()
{
while (true)
{
// Wait until all frame rendering is done
yield return new WaitForEndOfFrame();
GL.IssuePluginEvent(1); //重點!!!繪圖執行緒將隱式呼叫外掛DLL中的UnityRenderEvent
}
}
/***************************nativelib***********************/
static void* m_TexturePointer ;
void _DLLExport SetCamTex(void* texturePtr){
m_TexturePointer = texturePtr;
}
void _DLLExport UnityRenderEvent(int eventID){
glDisable(GL_CULL_FACE);
...//這裡是openGL的東西,隨便你設定了
DoRending(); //自定義的渲染函式
}
void DoRending(){
GLuint glTex = (GLuint)(size_t)(m_TexturePointer);//獲取紋理指標,下面都是openGL的那一套
glBindTexture(GL_TEXTURE_2D,glTex);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_BGR_EXT, GL_UNSIGNED_BYTE, m_Tex.data);
}
最後,填個小坑:如果在linux下執行沒問題,如果是win下,要右鍵Unity.exe 在後面加上 -force-opengl
相關推薦
2017.08.04 通過openGL紋理在Unity中獲取攝像機影象
主要程式碼如下 : IEnumerator Start() { Image_left = new Texture2D(m_videoWidth, m_videoHeight, TextureFormat.ARGB32, false); //在
2017.08.04 Python網絡爬蟲之Scrapy爬蟲實戰二 天氣預報
font size 項目 執行 weather html time art show 1.項目準備:網站地址:http://quanzhou.tianqi.com/ 2.創建編輯Scrapy爬蟲: scrapy startproject weather scrapy
2017.08.04 Python網絡爬蟲之Scrapy爬蟲實戰二 天氣預報的數據存儲問題
sql語句 city amd64 ces img href asp encoding primary 1.數據存儲到JSon:程序閱讀一般都是使用更方便的Json或者cvs等待格式,繼續講解Scrapy爬蟲的保存方式,也就是繼續對pipelines.py文件動手腳 (1)創
[2017/08/22]高效能C/C++程式設計中的那些資料結構
本文首發於騰訊KM,如轉載請註明作者,出處。 偶然在k吧首頁看到了luckyzuo的分享,因為自己一直對這方面很感興趣,所以在工作之餘對照ppt聽了講座錄音,受益匪淺。這次分享提到了幾種資料結構,我結合了自己的一些理解,寫了這篇文章。寫的時候查閱了許多資料,越
Unity中獲取Animator中動畫片段的時長
sta bre 分享圖片 個數 watermark str size .get 開發 開發環境:Unity5.6.2 private Animator animator; public void GetLengthByName(string name) { floa
Unity中獲取滑鼠相對於UI元件的位置
虛擬搖桿 在製作虛擬搖桿的時候,需要獲得滑鼠點選時,在UI元件上的位置 在NGUI中有個api叫UICamera.lastTouchPosition 我們可以獲取在UI螢幕空間中滑鼠的位置,然後經過座
1.簡單例項:ASP.NET下Echarts通過Ajax從資料庫中獲取資料
後臺:Test01.ashx.cs:從資料庫獲取資料,通過HTTP請求(HttpContext)實現和前臺資料傳遞json資料 using System; using System.Collections.Generic; using System.Linq; using
unity中獲取button文字的內容
using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System; public clas
在unity中實現簡單的程式紋理 10.3.1
using UnityEngine; using System.Collections; using System.Collections.Generic; //在unity中實現簡單的程式紋理 10.3.1 //在編輯模式執行 [ExecuteInEditMo
【2017-11-08】document.getElementById 在IE中隱藏的bug
document.getElementById 一般在前端開發中用來獲取指定ID的控制元件,如果存在這個元素,則會直接返回這個元素,否則返回null. *在IE8以前的版本中,document
unity shader學習筆記(二十一)——Unity中的高階紋理之渲染紋理
渲染紋理 渲染目標紋理(Render Target Texture, RTT)是指一個攝像機將渲染結果輸出到顏色緩衝中,並顯示到螢幕上,而不是傳統的幀緩衝和後備緩衝。 多重渲染目標(Multiple Render Target, MRT)是指把場景同
在Unity中通過觸控式螢幕幕實現模型的旋轉和縮放
using UnityEngine; using System.Collections; public class ScaleAndRotate : MonoBehaviour { private Touch oldTouch1; //上次觸控點1(手指1) private Touch ol
Unity中通過場景切換但音樂繼續播放
public class Test: MonoBehaviour { public GameObject objPrefabInstantSource;//音樂預知物體 private GameObject musicInstant = null;//場景中是否有這個物體 //
關於Unity中的新手編碼技巧
編輯器 展開 解決 編譯 出錯 怎麽辦 查看 代碼 寫代碼 寫代碼遇到報錯,問題怎麽辦?怎麽查看unity代碼的接口?函數參數不記得了怎麽辦? 解決方法: 1.選擇不懂的函數或類,按F12,跳轉到代碼的定義,自己去看就可知道了。 2.有的時候,選擇一個函數,按F12想跳轉去
Unity SLua 如何調用Unity中C#方法
都差不多 public title 接口 如何 1.原理就是通常在Lua框架中所說的,開放一個C#的web接口,或者叫做在Slua框架中註冊函數。2.作用在Lua中調用C#中的方法,這個是在做熱更新中很常用的一種方法,無論是slua,還是lua,都差不多、這
關於Unity中的幾何體
模式 mob 繪制 反射 mod 選擇 and tex 足球場 一、創建幾何體的類型 1: 創建平面 Plane;2: 創建立方體 Cube;3: 創建球體 Sphere;4: 創建膠囊體 Capsule;5: 創建圓柱體 Cylinder;6: 3D文字 3D text;
關於Unity中的NGUI和UGUI
幫我 事件 視角 比例 設置 內置 作者 x64 spec 用Unity開發2D遊戲,有三套關系 1.GUI:Unity本身的對象 2.NGUI:以前在Unity中廣泛來做2D的,是第三方的包,需要安裝 3.UGUI:Unity5.X後,Unity找到NGUI的作者,開發了
【只怕沒有幾個人能說清楚】系列之二:Unity中的特殊文件夾
物體 avi ebp time 編輯模式 tro hive 預覽 打包 參考:http://www.manew.com/thread-99292-1-1.html 1. 隱藏文件夾 以.開頭的文件夾會被忽略。在這種文件夾中的資源不會被導入,腳本不會被編譯。也不會出現
關於Unity中RawImage和Button
clam 屬性 尋址 lam etc 1.2 public 遊戲場景 像素 1.貼圖的Texture Type屬性值 Texture:會把貼圖的大小轉換為最相近的2的n次方,比如400X1369會轉換為512X1024。 Sprite 2D:是貼圖的原始大小。 2.
關於Unity中UI中的Button節點
pda initial debug.log 禁用 修飾 不能 重復 綁定 etc Button是最常用的UI節點,包含的組件有 1.Image組件 顯示Button的紋理,把Image貼圖拖進Image組件中後,記得點擊Set Native Size,顯示貼圖原始大小