




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、會計學1VR第講繪制技術(shù)第講繪制技術(shù)真實世界對象模型虛擬環(huán)境顯示渲染建模繪制與渲染目的:將虛擬環(huán)境輸出,作用于參與者第1頁/共122頁上述通道并不孤立,需要相互結(jié)合,而視覺通道是輸出的主體第2頁/共122頁第3頁/共122頁第4頁/共122頁第5頁/共122頁第6頁/共122頁第7頁/共122頁第8頁/共122頁第9頁/共122頁硬件平臺:顯卡、GPU、基本繪制層:OpenGL、DirectX第10頁/共122頁 常用繪制引擎n商用nPerformernWorldToolKit (WTK)nVTreenOpenGVSnVeganVirtoolsn開源nOSG第11頁/共122頁OpenGVS基
2、礎(chǔ)第12頁/共122頁OpenGVS is a very high-level, Applications Programming Interface (API) forreal-time 3-D software developers and system integrators. API consists of many powerful functions.OpenGVS是API第13頁/共122頁 使用OpenGVS可以快速開發(fā)跨平臺的虛擬現(xiàn)實應(yīng)用。OpenGVS 的應(yīng)用軟件可以在許多不同的硬件平臺和帶不同繪圖標準(OpenGL,3DFX GLIDE,Direct3D )的操作系統(tǒng)上運
3、行,而不需要做什么修改。 支持OpenGL、3DFX Glide以及DirectX多種加速引擎。OpenGVS的優(yōu)勢第14頁/共122頁第15頁/共122頁圖形系統(tǒng)OpenGVS第16頁/共122頁OpenGVS資源組成第17頁/共122頁System Facility Command FacilityImport Facility User FacilityObject Facility Scene FacilityCamera Facility Channel FacilityFrame Buffer Facility Fog FacilityLight Facility Material
4、 FacilityTexture Facility Geometry Facility OpenGVS的功能組件第18頁/共122頁 F Fb bf f C Ch hn nL Li is st t OtherChn1 Chn2 Cam Scn Ter Fog Lsr OOb bi iL Li is st t Obi1 Obi2 Obi3 第19頁/共122頁第20頁/共122頁第21頁/共122頁 屬性缺省值設(shè)定時所用函數(shù)NameNULL (empty string )GV_chn_set_name()N o r m a l i z e d V i e w p o r t Dimensions
5、(.xmin, .xmax, .ymin, .ymax)-1.0, 1.0, -1.0, 1.0GV_chn_set_viewport()Erase ModeGV_CHN_ERASE_MODE_ONGV_chn_set_erase_mode()Erase Color0.0, 0.0, 0.0, 1.0 (black)GV_chn_set_erase_color()BorderG_ONGV_chn_set_border()D o u b l e BufferingG_ON Far Clipping Plane (system units)250000.0 Near Clipping Plane0
6、.1 Shear (.x, .y) Translation0.0, 0.0GV_chn_set_shear()Twist (.x, .y, .z) Angles0.0, 0.0, 0.0GV_chn_set_twist()第22頁/共122頁第23頁/共122頁第24頁/共122頁第25頁/共122頁第26頁/共122頁第27頁/共122頁第28頁/共122頁第29頁/共122頁第30頁/共122頁一旦收到WM_QUIT消息就退出運行時,執(zhí)行關(guān)閉模塊系統(tǒng)初始化以后進入運行時模塊各種資源和狀態(tài)的初始化模塊GV_sys_init()GV_user_init()調(diào)用返回調(diào)用返回GV_sys_proc
7、()調(diào)用返回GV_user_proc()GV_user_events()對象的回調(diào)函數(shù)照相機的回調(diào)函數(shù)通道的回調(diào)函數(shù)圖形處理的回調(diào)函數(shù)調(diào)用OpenGL的圖形函數(shù)及相關(guān)回調(diào)函數(shù)GV_sys_shutdown()GV_user_shutdown()調(diào)用返回調(diào)用返回各種資源句柄或指針的釋放、關(guān)閉函數(shù)OpenGVS仿真循環(huán)第31頁/共122頁第32頁/共122頁第33頁/共122頁第34頁/共122頁第35頁/共122頁第36頁/共122頁set G_DEV=d:set G_ROOT_PATH=gemset GV_ROOT=gemgvset GV_GFX=openglset G_COMPILER=ms
8、vccall d:gemgvlogin_gv.batd:cdprogra1MICROS1Common MSDev98binmsdev.exeOpenGVS環(huán)境變量設(shè)置第37頁/共122頁OpenGL加速引擎編譯連接設(shè)置Preprocessor definitions:WIN32,_WINDOWS,_AFXDLLObject/library modules:libgv.lib $(GV_LIB_GL) netapi32.lib winmm.lib mpr.libVC工程文件的設(shè)置(1)第38頁/共122頁GLIDE加速引擎編譯連接設(shè)置Preprocessor definitions:WIN32,
9、_DEBUG,_WINDOWS,OpenGVS,NOGEOMETRY,G_SYS_GLIDEObject/library modules:d:gemgvlibw32x86mtglidelibgv3.lib d:gemgvlibw32x86mtglidelibgv.lib d:gemgvlibw32x86mtglidelibsgl.lib d:gemgvlibw32x86mtglidelibstub.lib d:gemgvlibsysw32x86glideglide2x.lib mpr.lib netapi32.lib winmm.lib oldnames.libVC工程文件的設(shè)置(2)第39頁
10、/共122頁COMMAND FACILITY(1)第40頁/共122頁COMMAND FACILITY(2)第41頁/共122頁OpenGVS支持的模型(1) 3D Studio Max Files exported in 3DS binary file format (.3ds)(2) MultiGen OpenFlight format (.flt)(3) GameGen format (.gam)(4) Wavefront Ascii (.obj)(5) Internal encrypted OpenGVS database file format (.gvm)第42頁/共122頁Imp
11、ort Facility(1)import file=filename options第43頁/共122頁Import Facility(2)第44頁/共122頁加載模型的兩種方法(1)IMPORTING MODELS VIA STARTUP COMMAND FILES: 在gvsinit.cmd中指定如下命令: import file=f18.flt(2) IMPORTING DATABASES USING FUNCTION CALLS:在應(yīng)用程序中使用函數(shù)調(diào)用: int status; status = GV_cmd_service( import file=f18.gam );第45頁/
12、共122頁GV_cmd_service( import file=f18.gam name=AIRPLANE );GV_Obi inst;GV_obi_instance_by_name( AIRPLANE, &inst );GV_obi_set_name( inst, PLANE_0 );static G_Position position = -20000., 4000., 800. ;GV_obi_set_position( inst, &position );static G_Rotation angles = 0., 45.0*G_DEG_TO_RAD, 0.;GV_obi_set_r
13、otation( inst, &angles );創(chuàng)建對象實例及操作對象第46頁/共122頁訪問對象的樹狀結(jié)構(gòu)GV_Obi barrel;GV_obi_inq_by_name( TANK/TURRET/Barrel, &barrel );GV_obi_inq_by_name( TANK, &root );GV_obi_inq_by_name_relative( root, ./Barrel, &barrel);第47頁/共122頁創(chuàng)建SCENEGV_Scene otw_scene;GV_scn_create( &otw_scene );SCENE FACILITY(1)向SCENE中加入對象G
14、V_obi_instance_by_name( moon, &inst );GV_scn_add_object( scene, inst );在SCENE中刪除一個對象GV_scn_remove_object( scene, inst );第48頁/共122頁向SCENE中加入光源GV_lsr_inq_by_name( sun, &sun );GV_scn_add_light( scene, sun );SCENE FACILITY(2)向SCENE中加入霧化模型GV_fog_inq_by_name( haze, &haze );GV_scn_add_fog( scene, haze );將S
15、CENE加入通道中GV_scn_inq_by_name( OTW, &scnhdl );GV_chn_inq_by_name( main, &chnhdl );GV_chn_set_scene( chnhdl, scnhdl );第49頁/共122頁創(chuàng)建CAMERAGV_Camera new_camera;GV_cam_create( &new_camera );CAMERA FACILITY(1)將相機加入通道中extern GV_Channel channel_main;GV_chn_set_camera( channel_main, camera1 );將相機綁定到一個運動對象上GV_o
16、bi_inq_by_name( AIRCRAFT, &aircraft_inst );GV_cam_set_mount_obi( camera_pilot, aircraft_inst );第50頁/共122頁相機追蹤某一對象GV_cam_set_track_mode( camera,GV_CAM_TRACK_MODE_OBI_SINGLE );GV_cam_add_trackable_obi( camera, thing_inst );CAMERA FACILITY(2)相機參數(shù)的設(shè)定GV_cam_set_aov_nominal( camera, angle );GV_cam_set_zoo
17、m_mode( camera, GV_CAM_ZOOM_MODE_AUTO );釋放相機占用的資源GV_cam_free( camera );第51頁/共122頁創(chuàng)建CHANNELGV_Channel channel;GV_chn_create( &channel );CHANNEL FACILITY設(shè)置視口大小static GV_Viewport vport_upper_right = 0.0, 1.0, 0.0,1.0;GV_chn_set_viewport( channel, &vport_upper_right );第52頁/共122頁GEOMETRY FACILITYGV_geo_i
18、nq_intersection( scene, &p0, &p1, type_mask, exclude, &data);G_Boolean isc_result; / G_TRUE if intersection occuredGV_Obi isc_object; / NULL if none, otherwise handleGV_Obi isc_sub_object; / NULL or HandleGV_Geo_face isc_face; / NULL if none, otherwise handlefloat isc_range; / Range to intersectionG
19、_Vector3 isc_point; / Point of intersection第53頁/共122頁OPENGVSOPENGVS中的碰撞檢測方法中的碰撞檢測方法視點視點P0(Vx,Vy,Vz)長度為給定值長度為給定值L視線上一點視線上一點P1(Px,Py,Pz)(1) 計算視線的方向計算視線的方向Vector3 sight_line(2) 確定確定P1 Px=Vx + L * sight_line.x Py =Vy + L * sight_line.y Pz =Vz + L * sight_line.z第54頁/共122頁場景數(shù)據(jù)庫模型加載模型控制面及控制參數(shù)非碰撞實體表面定義場景調(diào)度
20、碰撞檢測地形匹配實體操縱輸入映射與解釋 狀態(tài)設(shè)置 視點控制 交互設(shè)計 二維地圖 特殊效果外部輸入圖5-1 通用漫游引擎框架結(jié)構(gòu)示意圖DOF實體約束 系統(tǒng)狀態(tài)控制機制第55頁/共122頁第56頁/共122頁第57頁/共122頁鍵 盤鼠 標游 戲 桿步 行 器傳 感 器用戶控制指令視點控制相機運動參數(shù)映射解釋圖5-2 輸入設(shè)備映射與視點控制第58頁/共122頁walker_heighteye_height行走相機觀察相機v_p1v_p0v_p2w_p1w_p0w_p2step-step圖5-3 漫游引擎中的視點控制模型第59頁/共122頁第60頁/共122頁第61頁/共122頁第62頁/共122頁
21、第63頁/共122頁第64頁/共122頁第65頁/共122頁第66頁/共122頁第67頁/共122頁第68頁/共122頁第69頁/共122頁第70頁/共122頁n判斷一個點是否在多邊形內(nèi)的方法n叉積判斷法(僅適用于凸多邊形)n夾角之和檢驗法n交點計數(shù)檢驗n選擇算法的關(guān)鍵是計算復(fù)雜度第71頁/共122頁Vi = Pi P0,i=1,2,n,Vn+1 = V1P0在多邊形內(nèi)的充要條件是ViVi+1的符號相同P1P2P3P4P5P0第72頁/共122頁第73頁/共122頁第74頁/共122頁多邊形邊界上的任意點p1,p2,N為其中一點處的內(nèi)法線:N .(p2-p1)= 0第75頁/共122頁第76頁
22、/共122頁第77頁/共122頁第78頁/共122頁場景組織包含多個物體后如何快速求交?第79頁/共122頁第80頁/共122頁第81頁/共122頁第82頁/共122頁第83頁/共122頁第84頁/共122頁第85頁/共122頁第86頁/共122頁空間結(jié)構(gòu)信息空間結(jié)構(gòu)信息包圍體層次包圍體層次球,球,AABB,OBB,k-DOP(離散有向離散有向多面體)多面體)用于加速繪制和各種計算用于加速繪制和各種計算與查詢與查詢靜態(tài),靜態(tài),動態(tài)場動態(tài)場景景空間結(jié)構(gòu)信息空間結(jié)構(gòu)信息BSP樹樹軸對齊軸對齊BSP樹樹計算開銷比較大計算開銷比較大可以進行粗排序?qū)梢赃M行粗排序?qū)cclusion Culling有利
23、有利靜態(tài)場靜態(tài)場景景多邊形對齊多邊形對齊BSP樹樹計算開銷大計算開銷大從后到前嚴格遍歷從后到前嚴格遍歷靜態(tài)場靜態(tài)場景景空間結(jié)構(gòu)信息空間結(jié)構(gòu)信息OCTree普通八叉樹普通八叉樹預(yù)處理計算開銷大預(yù)處理計算開銷大更新困難更新困難靜態(tài)場靜態(tài)場景景松散八叉樹松散八叉樹空間結(jié)構(gòu)信息空間結(jié)構(gòu)信息與邏輯語義信與邏輯語義信息息Scene Graph高層數(shù)據(jù)結(jié)構(gòu)(紋高層數(shù)據(jù)結(jié)構(gòu)(紋理,變換。)理,變換。)狀態(tài)切換少狀態(tài)切換少場景描述能力強場景描述能力強不需要預(yù)處理不需要預(yù)處理靜態(tài),靜態(tài),動態(tài)動態(tài)第87頁/共122頁第88頁/共122頁OPENGVSOPENGVS中的碰撞檢測方法中的碰撞檢測方法視點視點P0(Vx,
24、Vy,Vz)長度為給定值長度為給定值L視線上一點視線上一點P1(Px,Py,Pz)(1) 計算視線的方向計算視線的方向Vector3 sight_line(2) 確定確定P1 Px=Vx + L * sight_line.x Py =Vy + L * sight_line.y Pz =Vz + L * sight_line.z第89頁/共122頁GEOMETRY FACILITYGV_geo_inq_intersection( scene, &p0, &p1, type_mask, exclude, &data);G_Boolean isc_result; / G_TRUE if intersection oc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鞏義市2024-2025學年六年級下學期小升初真題數(shù)學試卷含解析
- 昆明幼兒師范高等??茖W?!督ㄖY(jié)構(gòu)選型》2023-2024學年第二學期期末試卷
- 武漢華夏理工學院《文本挖掘》2023-2024學年第二學期期末試卷
- 黑龍江省七臺河市勃利縣小五站鎮(zhèn)慶云村小學2025屆數(shù)學三下期末考試試題含解析
- 浙江農(nóng)林大學《泌尿、生殖與內(nèi)分泌系統(tǒng)醫(yī)學教程》2023-2024學年第二學期期末試卷
- 2025年鉆石市場分析:中國產(chǎn)能沖擊下全球格局劇變與核心數(shù)據(jù)解讀
- 2025年光伏市場分析:供需格局與價格走勢解析
- 樁間擋板施工方案
- 東側(cè)樓梯施工方案
- 彩鋼瓦清洗噴漆施工方案
- 2024-2025學年第二學期天域全國名校協(xié)作體高三3月聯(lián)考 地理試卷(含答案)
- 學校2025年每日兩小時體育活動方案-陽光體育活力四溢
- B超的基本知識
- 錘擊式PHC預(yù)應(yīng)力混凝土管樁貫入度的控制
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 敘事醫(yī)學培訓課件
- 《勞動紀律》課件
- 小學數(shù)學一年級上冊數(shù)與代數(shù)
- 失能老年人健康管理模式研究進展
- 5G優(yōu)化案例:5G波束配置優(yōu)化提升CQI優(yōu)良比案例
- JT-T-1202-2018城市公共汽電車場站配置規(guī)范
評論
0/150
提交評論