日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用渲染纹理的制作摄像头

發(fā)布時間:2025/7/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用渲染纹理的制作摄像头 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

使用渲染紋理的制作攝像頭

從Unity5版本開始,渲染紋理的功能對所有用戶開放(是的,包括免費版本)!你可以使用此功能來創(chuàng)造很酷的效果,在本文中,我將向你說明怎么創(chuàng)建一個很酷的監(jiān)控相機,把相機視圖投影到屏幕上。

什么是渲染紋理呢?

渲染紋理是一種你可以在其上繪制,然后像使用其他精靈/紋理一樣的紋理。其中,最酷的一件事就是你可以使用它作為相機視圖的目標(biāo)——這樣相機把它所見的繪制到紋理上(而不是顯示在屏幕上)。

另外,這里還包含了一個可把渲染紋理保存為.PNG文件的腳本,你可以隨便使用。

?

在TV上顯示一個監(jiān)控相機(忽略吸血鬼...)

該技術(shù)類似于一個監(jiān)控相機設(shè)置。你有一個可看見圖像的相機,然后把它記錄到渲染紋理上(相當(dāng)于視頻帶或硬件驅(qū)動存放圖像),最后把圖像投影到TV屏幕上。

下載

你可下載完整的Unity包(需Unity5+?版本),或你可以跟教程做。

這個包中包括一個隨機顯示對象(和一個吸血鬼!)的demo場景。相機指向隨機的對象,并把它顯示到TV屏幕上。

吸血鬼里有一個不錯的設(shè)計——你選擇哪個相機是否可看見(當(dāng)然,鏡子或相機不能看到吸血鬼)。

在樣例場景中,你可以做如下控制:

·?箭頭按鍵——移動監(jiān)控相機

·?V——切換吸血鬼的可見性

·?S——保存監(jiān)控相機當(dāng)前視圖為.PNG文件。

具體步驟

若你對Unity非常熟悉,你可以跳過本節(jié)。

對于Unity新手,這里會包含大部分的詳細的基本操作。若你不理解或想不通,只需要打開資源包——一個非常簡單的工程——看看這些對象和他們的設(shè)置。

這個技術(shù)很大的優(yōu)勢就是關(guān)鍵功能不需要一行代碼。它們都包含在了Unity的編輯器中了。

本工程有兩個腳本,但是他們是附加功能(其中一個是移動相機,另一個是保存渲染紋理為.PNG文件的)。

新建工程

新建的Unity的3D項目。

你需要的資源是兩個精靈(一個TV和一個吸血鬼)。你可以從下載文件中找到或使用你自己的。

把TV放到屏幕上,然后在其他地方隨機放置些對象(待會要用監(jiān)控相機觀察這些對象)。把吸血鬼放到這些隨機對象當(dāng)中。

為使TV和吸血鬼精靈導(dǎo)入到場景中,需要選中它們,然后把紋理類型改為精靈。

調(diào)整TV大小來使其看起來大小合適。縮放比為(4,4,1)差不多剛好。它會要把放置到場景視圖中的對象轉(zhuǎn)換為2D的。

你可以直接使用Untiy主菜單(比如:主菜單>GameObject>3D?對象>立方體)創(chuàng)建球型和立方體等等,或通過拖拽一些精靈到場景中來創(chuàng)建一些隨機項供相機查看。

大致如下圖所示,進入下一步。

?

場景如圖

創(chuàng)建吸血鬼

通過創(chuàng)建一個特殊層并告訴監(jiān)控相機忽略此層,使吸血鬼對相機不可見。

在層次面板中選中吸血鬼,然后選擇添加圖層...在屬性面板下拉列表中添加新圖層,如下:

?

創(chuàng)建新圖層

在用戶圖層8的字段下鍵入“vampire”。

?

命名為‘vampire’

在吸血鬼選中的狀態(tài)下,設(shè)置它的圖層為吸血鬼:

?

設(shè)置圖層目前不起任何作用,但是在我們操作幾步后,它就會起作用了。

創(chuàng)建渲染紋理

在資源文件夾任意地方右鍵單擊,選擇創(chuàng)建>渲染紋理。創(chuàng)建一個新的渲染紋理。命名為SecurityCameraTexture。

?

創(chuàng)建一個渲染紋理

?

?

選擇SecurityCameraTexture紋理,在屬性面板中設(shè)置它大小為480x270。它的大小決定著它的分辨率,以及將要從相機視圖中保存的.PNG圖像的分辨率。

?

設(shè)置渲染紋理的大小

從渲染紋理創(chuàng)建材質(zhì)

使用剛才創(chuàng)建的SecurityCameraTexture創(chuàng)建一個新的材質(zhì)?:

1.??

在資源文件夾任意地方右鍵單擊

2.?

選擇創(chuàng)建>材質(zhì),命名為SecurityFootage

3.?

選中新材質(zhì),修改它的著色器屬性(在屬性面板上)為手機/漫反射(Mobile/Diffuse)(你需要讓它的材質(zhì)接受一個紋理,缺省是不支持的)。

4.?

把SecurityCameraTexture?拖拽到材質(zhì)的紋理屬性上(右上角帶有山峰照片的小盒子上):

?

創(chuàng)建新材質(zhì)

至此,我們創(chuàng)建了一個材質(zhì),它可以把theSecurityCameraTexture?紋理顯示到任何對象表面。

監(jiān)控相機

向場景中添加一個新的相機(主菜單>GameObject>相機)。

重命名新相機為SecurityCamera。

把SecurityCameraTexture?拖拽到SecrityCamera的目標(biāo)紋理字段上。這就使相機視圖顯示渲染紋理而不是顯示到屏幕上,因為相機此時是作為錄像而不是把它顯示到游戲屏幕上。

?

當(dāng)相機被選中,你可以看到一個可看到場景窗口的小小預(yù)覽窗口。

當(dāng)相機被選中時,它的視圖在預(yù)覽窗口中顯示的是場景視圖。你的場景也許與上圖不太一樣。

?

把相機移動到可以看到所有對象和吸血鬼的地方。你需要確保相機在你3D空間場景的前方,這樣就可以看到場景中所有對象。當(dāng)可在相機預(yù)覽窗口中看到所有對象時(不包括TV屏幕),進行下個步驟。

過濾吸血鬼

在上圖預(yù)覽窗口(需要把對象顯示在TV屏幕上,待會就可以了)中,你不能看到吸血鬼。為過濾吸血鬼,在層次面板中選中SecurityCamera,然后從它的裁剪Mask中移除vampirelayer?(這樣它就看不吸血鬼圖層的任何東西):

1.?

在層次面板中選中SecurityCamera?

2.?

在屬性面板中,點擊裁剪Mask的下拉列表

3.?

取消吸血鬼圖層的對勾(勾選的圖層是相機可見的)。

?

過濾vampire圖層的對象

?

?若在相機預(yù)覽中吸血鬼依舊可見,回去看看,確保你對吸血鬼創(chuàng)建了吸血鬼圖層。

創(chuàng)建TV

在場景中創(chuàng)建一個平面(主菜單>GameObject>3D對象>平面(Plane))。重命名平面為TVScreen。

若你之前沒有用過平面,可能會覺得奇怪。因為平面是一個二維的平面,它在某些角度和視角下可能看不到。旋轉(zhuǎn)平面使其面向相機。切換3D和2D場景視圖可幫助你修改它。

修改TV?Screen使其適合TV精靈的屏幕。確保它被放置到TV精靈的正前方,讓主相機看到它。

拖拽SecurityFootage?到TV?Screen的材質(zhì)>元素0(Element?0)的屬性(待會你需要像屏幕下方一樣擴展材質(zhì)列表):

使用之前創(chuàng)建的SecurityFootage作為平面的材質(zhì)

至此,已經(jīng)把材質(zhì)關(guān)聯(lián)到TV?屏幕上。你會想起之前的步驟,材質(zhì)將顯示監(jiān)控相機看到的。

若TV圖片上下顛倒,你需要旋轉(zhuǎn)平面到正確位置。

就是這樣!

?

你甚至不需要運行場景就可以看到場景對象(除了吸血鬼)顯示到TV屏幕上了。超級棒!

我們總結(jié)一下我們基本步驟:

1.?

創(chuàng)建一個渲染紋理

2.?

創(chuàng)建一個相機將看到的內(nèi)容繪制到渲染紋理上

3.?

創(chuàng)建一個材質(zhì)來顯示渲染紋理

4.?

最后,創(chuàng)建TV?屏幕顯示材質(zhì)。

跟真的監(jiān)控相機一樣,我們撲捉視圖,通過一個錄像設(shè)備(渲染紋理類似于電影的攝像機)把它發(fā)送到一個屏幕上。

提高部分

?

樣例工程中包含兩個額外的代碼。一個腳本是添加一些用戶控制以便移動監(jiān)控相機和切換吸血鬼的顯示和隱藏;另一個腳本當(dāng)按下“S”鍵時,把監(jiān)控相機視圖保存為一個.PNG格式圖片文件。第二個腳本如下,并做了注釋。

保存渲染紋理

代碼是Unity問答中‘Mate-O’?編寫,做了修改(http://answers.unity3d.com/questions/22954/how-to-save-a-picture-take-screenshot-from-a-camer.html)

代碼很簡單——讀取渲染紋理像素,編碼為.PNG?,最后保存為.PNG。注釋說明了每段代碼功能。

?

?

[csharp]?view plaincopy print?
  • Code?example:??
  • using?UnityEngine;??
  • using?System.Collections;??
  • using?System;??
  • ???
  • public?class?CameraSnapshot?:?MonoBehaviour??
  • {??
  • [SerializeField]??
  • RenderTexture?securityCameraTexture;??//?drag?the?render?texture?onto?this?field?in?the?Inspector??
  • [SerializeField]??
  • Camera?securityCamera;?//?drag?the?security?camera?onto?this?field?in?the?inspector??
  • ???
  • void?LateUpdate()??
  • {??
  • ???
  • ????if?(Input.GetKeyDown("s"))??
  • ????{??
  • ????????StartCoroutine(SaveCameraView());??
  • ????}??
  • ???
  • }??
  • ???
  • public?IEnumerator?SaveCameraView()??
  • {??
  • ????yield?return?new?WaitForEndOfFrame();??
  • ??
  • ????//?get?the?camera's?render?texture??
  • ????RenderTexture?rendText=?RenderTexture.active;??
  • ????RenderTexture.active?=?securityCamera.targetTexture;??
  • ???
  • ????//?render?the?texture??
  • ????securityCamera.Render();??
  • ???
  • ????//?create?a?new?Texture2D?with?the?camera's?texture,?using?its?height?and?width??
  • ????Texture2D?cameraImage=?new?Texture2D(securityCamera.targetTexture.width,?securityCamera.targetTexture.height,?TextureFormat.RGB24,?false);??
  • ????cameraImage.ReadPixels(new?Rect(0,?0,?securityCamera.targetTexture.width,?securityCamera.targetTexture.height),?0,?0);??
  • ????cameraImage.Apply();??
  • ????RenderTexture.active?=?rendText;??
  • ???
  • ????//?store?the?texture?into?a?.PNG?file??
  • ????byte[]?bytes?=?cameraImage.EncodeToPNG();??
  • ???
  • ????//?save?the?encoded?image?to?a?file??
  • ????System.IO.File.WriteAllBytes(Application.persistentDataPath?+?"/camera_image.png",?bytes);??
  • }??
  • }??
  • ??????

  • ?

    ?

    一旦腳本添加到場景中,就可以按下“S”鍵來獲取相機截圖。你可以訪問保存的文件。

    總結(jié)

    渲染紋理是一個你可以繪制的畫布。通過關(guān)聯(lián)渲染紋理到相機的輸出,就可以把相機所見繪制到渲染紋理上。

    因為渲染紋理是一個紋理,就可以把它關(guān)聯(lián)到材質(zhì)上。然后,添加材質(zhì)到對象上并有效的把渲染紋理投影到對象的表面。

    監(jiān)控顯示是對它工作原理是一個很好的比喻。相機就是相機,渲染紋理是視頻錄制,材質(zhì)是你視頻投影到的屏幕。

    展望?

    現(xiàn)在,你應(yīng)該理解了渲染紋理的工作原理,并可靈活使用。.PNG輸出也提供了很多可能。渲染紋理特性(還有其他屬性)對Unity5之前的非專業(yè)版本用戶不開放,越來越開放使Unity成為越來越棒的工具。

    使用該技術(shù)的一些想法:

    ·?使用多個精靈形成一個新的圖片保存為.PNG,在游戲中使用(比如:通過不同的特征組成一張臉)。

    ·?紅外相機可以看到裸眼不可見生物。

    ·?若你可以找到一個方法修改相機輸出(比如:讓TV屏幕為黑白屏或像老電腦屏幕一樣泛綠光)。

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/chenliyang/p/6558455.html

    總結(jié)

    以上是生活随笔為你收集整理的使用渲染纹理的制作摄像头的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 97视频资源 | 婷婷伊人 | 人妻夜夜爽天天爽三区麻豆av网站 | 在线观看视频www | 奇米网一区二区 | 午夜精品一区二区三区在线观看 | av55 | 免费高清av在线看 | 天天撸在线视频 | 91蜜桃婷婷狠狠久久综合9色 | 日本三级韩国三级三级a级按摩 | 另类综合在线 | 婷婷色激情 | 淫羞阁av导航 | 国产欧美在线播放 | 玖草影院| 精品成人久久 | 国产一级片免费观看 | 欧美视频久久久 | 一级片在线播放 | 视频一区 国产 | jizz亚洲女人高潮大叫 | 怡红院最新网址 | 俄罗斯黄色录像 | 欧美一级免费视频 | 自拍偷拍视频在线 | 少妇人妻一区二区 | 日日干,夜夜操 | 韩国精品视频在线观看 | 香蕉福利视频 | 国精品无码人妻一区二区三区 | 奇米影视狠狠干 | 日韩精品二区在线观看 | 免费无码毛片一区二三区 | 久久久精品动漫 | 日韩大片av | 久久新视频 | 好看的黄色录像 | 日韩高清片 | 日韩免费观看一区二区三区 | 国产精品国产三级国产aⅴ9色 | 四虎黄网| 99re视频在线 | 日本丰满少妇裸体自慰 | a激情 | yy1111111| 久久久精品中文字幕麻豆发布 | 乱色精品无码一区二区国产盗 | 成片免费观看视频 | 二区三区不卡 | 国产精品一区二区精品 | 亚洲黄色视屏 | 国产亚洲色婷婷久久99精品91 | 91美女视频| 日本www网站| 成人一区二区三区在线 | 国产稀缺真实呦乱在线 | 快播日韩 | 午夜网站在线观看 | 亚洲精品第三页 | 欧美一级黄色片在线观看 | 成人免费无码大片a毛片抽搐色欲 | 欲求不满在线小早川怜子 | 911福利视频 | 国产精品v欧美精品v日韩精品 | 欧美色吊丝 | 毛片库 | 欧美一区二区二区 | 青青青在线视频观看 | 乱色视频 | 91中文字幕在线播放 | 亚洲成a人片 | 亚洲精品国产精品国自产观看浪潮 | 欧美性xxxxx极品娇小 | 精品一区二区三区成人免费视频 | 欧美一二三区在线观看 | 午夜伦伦| 91九色蝌蚪在线 | 欧美性猛交xxxx久久久 | 九色porny丨精品自拍视频 | 97在线国产| 天躁夜夜躁狼狠躁 | 在线色资源 | 91青青草 | 波多野结衣www | caopeng在线视频 | av天天看 | 成人国产三级 | 久久99精品久久久久婷婷 | 国产精品无 | 一级片成人 | 日本丰满熟妇bbxbbxhd | 亚洲精品久久夜色撩人男男小说 | 亚洲成人一区在线观看 | 欧美日韩色片 | 中国女人特级毛片 | 午夜影院免费观看 | 亚洲AV成人无码电影在线观看 | 国产精品视频第一页 | 久久av网站 |