《Unity虛擬現(xiàn)實(shí)技術(shù)及其應(yīng)用》 課件 7 camera_第1頁
《Unity虛擬現(xiàn)實(shí)技術(shù)及其應(yīng)用》 課件 7 camera_第2頁
《Unity虛擬現(xiàn)實(shí)技術(shù)及其應(yīng)用》 課件 7 camera_第3頁
《Unity虛擬現(xiàn)實(shí)技術(shù)及其應(yīng)用》 課件 7 camera_第4頁
《Unity虛擬現(xiàn)實(shí)技術(shù)及其應(yīng)用》 課件 7 camera_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

CameraCamerasarethedevicesthatcaptureanddisplaytheworldtotheplayer.ClearflagEachCamerastorescoloranddepthinformationwhenitrendersitsview.solidcolor.AnyemptyportionsofthescreenwilldisplaythecurrentCamera’sBackgroundColor.Skybox,BackgroundWithSolidColorselectedasyourClearFlagsproperty,youcanusetheBackgroundpropertytoselectacolorthatindicatesscreenareasremainingafterthegameelementshavedrawn.DepthWecancreatemultipleCameras.CamerasaredrawnfromlowDepthtohighDepth,withthelowestvaluebeingthebottom,renderedfirst.SeeEditor…..Forexample,aCamerawithaDepthof2willbedrawnontopofaCamerawithadepthof1.seeEditor….ViewportRect:seetheeditor…CullingMaskusedforselectivelyrenderinggroupsofobjectsusingLayers.Layersareusedtogroupobjects….Youmayonlywantacertainlayerofobjectstoberenderedbyonecamera,whileotherlayresarerenderedbyanother.CameraProjectioncamera

projectionsFieldofView(FOV)Theverticalviewingangleofthecamera,indegrees.ClippingplanesNote,onlyobjectsbetweentheclippingplanesthatfallwithinthevolumeofthefrustumwillberendered!!!ChangetheprojectionmatrixGetthecurrentcamera,Cameracam=GetComponent<Camera>();jectMatrix=mat;cam.ResetProjectMatrix();//updatescreenspace(pixelwidth,height)pixel(x,y)

(0,0)ViewportRectAtwo-dimensionalareaonthescreen,withanormalizedcoordinatescale.bottom-left:(0,0),top-right:(1,1),zisthedepthofthecamera.camera.rect=newRect();camera.pixelRect=newRect(x0,y0,w,h);Camera.pixelWidth,camera.pixelHeightReferenceforcameraFormoreadvancedpropertiesofacamera,clickonthebluebook….SeeDemoFirstpersonview,seetextbook…WritecodestoControlcamera….Camera類獲取或設(shè)置相機(jī)視口的寬高比PublicMatrix4x4cameraToWorldMatrix此屬性是返回相機(jī)的局部坐標(biāo)系到世界坐標(biāo)系的變換矩陣,只讀。NotethatcameraspacematchesOpenGLconvention:camera'sforwardisthenegativeZaxis.ThisisdifferentfromUnity'sconvention,whereforwardisthepositiveZaxis.PublicMatrix4x4worldToCameraMatrixMatrixthattransformsfromworldtocameraspace.Usethistocalculatethecameraspacepositionofobjectsortoprovidecustomcamera'slocationthatisnotbasedonthetransform.Ifyouchangethismatrix,thecameranolongerupdatesitsrenderingbasedonits

Transform.Thislastsuntilyoucall

ResetWorldToCameraMatrix.PublicMatrix4x4projectMatrixIfyouchangethismatrix,thecameranolongerupdatesitsrenderingbasedonitsfieldOfView.ThislastsuntilyoucallResetProjectionMatrix.PublicVector3ViewportToWorldPoint(Vector3pos);Transforms

position

fromviewportspaceintoworldspace.Viewportspaceisnormalizedandrelativetothecamera.Thebottom-leftoftheviewportis(0,0);thetop-rightis(1,1).Thezpositionisinworldunitsfromthecamera.PublicVector3WorldToViewportPoint(Vector3pos)Transforms

position

fromworldspaceintoviewportspace.Viewportspaceisnormalizedandrelativetothecamera.Thebottom-leftofthecamerais(0,0);thetop-rightis(1,1).Thezpositionisinworldunitsfromthecamera.PublicVector3WorldToScreenPoint(Vectr3pos)Transforms

position

fromworldspaceintoscreenspace.Screenspaceisdefinedinpixels.Thebottom-leftofthescreenis(0,0);theright-topis(pixelWidth,pixelHeight).Thezpositionisinworldunitsfromthecamera.PublicRayScreenPointToRay(Vector3pos)Returnsaraygoingfromcamerathroughascreenpoint.Resultingrayisinworldspace,startingonthenearplaneofthecameraandgoingthroughposition's(x,y)pixelcoordinatesonthescreen(position.zisignored).Screenspaceisdefinedinpixels.Thebottom-leftofthescreenis(0,0);theright-topis(pixelWidth

-1,pixelHeight

-1).PublicRayViewportPointToRay(Vector3pos)RayRay(Vector3origin,Vector3direction);Rayx=newRay(Vector3.zero,Vector3.right);RaycastAstaticfunctioninPhysics(組件).Castsaray,fromapoint,inadirection,oflength

maxDistance,againstallcolliders(組件,碰撞器)

inthescene.bool

TrueiftherayintersectswithaCollider,otherwisefalse.staticbool

Raycast(Ray

ray,float

maxDistance

=Mathf.Infinity…

staticbool

Raycast(Ray

ray,

out

RaycastHit

hitInfo,,float

maxDistance

=Mathf.Infinity,staticbool

Raycast(Vector3

origin,

Vector3

direction,out

RaycastHit

hitInfo,

float

maxDistance,

….RaycastHit

Structureusedtogetinformationbackfromaraycast.鼠標(biāo)拾取物體的原理

1、聲明一個(gè)觀察的攝像機(jī)、一個(gè)從攝像機(jī)原點(diǎn)出發(fā)的射線Ray以及一個(gè)用于檢測碰撞的RaycastHit;2、將射線Ray定義為從攝像機(jī)原點(diǎn)出發(fā)并且指向當(dāng)前鼠標(biāo)所在的坐標(biāo)(屏幕坐標(biāo));3、定義碰撞RaycastHit為射線Ray與有碰撞屬性的物體的碰撞點(diǎn)。publicclasscamera:MonoBehaviour{publicCameraca;privateRayra;privateRaycastHithit;//UsethisforinitializationvoidStart(){}//UpdateiscalledonceperframevoidUpdate(){ra=ca

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論