国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

虛擬實(shí)驗(yàn)室設(shè)計(jì)與實(shí)現(xiàn)

2018-05-15 08:31張慶高孫建剛王惠青崔利富彭永鵬
軟件導(dǎo)刊 2018年4期
關(guān)鍵詞:窗體第一人稱漫游

張慶高 孫建剛 王惠青 崔利富 彭永鵬

摘 要:以虛擬教育為切入點(diǎn),以土木工程專業(yè)擬靜力試驗(yàn)為例,設(shè)計(jì)并實(shí)現(xiàn)了虛擬實(shí)驗(yàn)室系統(tǒng)。該系統(tǒng)采用3Ds Max、Photo Shop對(duì)實(shí)驗(yàn)室及實(shí)驗(yàn)材料、設(shè)備等進(jìn)行建模和貼圖,同時(shí)利用ADINA數(shù)值仿真分析軟件對(duì)實(shí)驗(yàn)進(jìn)行模擬,提取所需實(shí)驗(yàn)數(shù)據(jù)并保存到SQL數(shù)據(jù)庫(kù)中,在Unity 3D平臺(tái)使用.Net腳本語(yǔ)言實(shí)現(xiàn)對(duì)模型的控制操作。該系統(tǒng)解決了大型試驗(yàn)準(zhǔn)備周期長(zhǎng)、資源消耗大、不易操作等問(wèn)題,最大限度地使學(xué)生參與整個(gè)實(shí)驗(yàn)過(guò)程,以掌握更多的知識(shí)和科研成果。

關(guān)鍵詞:虛擬實(shí)驗(yàn)室;Unity 3D;.Net腳本

DOI:10.11907/rjdk.172686

中圖分類號(hào):TP319

文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2018)004-0120-04

Abstract:This paper takes virtual education as the breakthrough point, designs and implements the virtual laboratory system by taking the civil engineering experiment as an example .The system uses 3Ds Max,PS to build model and pastes map about the laboratory, experimental materials, equipment and so on, meanwhile, it gets and saves the experimental data by ADINA in SQL Data Base , controls the models by .Net script language on the Unity 3D platform. The system solves the problems such as long period of preparation, large resource consumption and difficult operation, and it makes students most involved in the whole process of experiment tobetter understand more knowledge and scientific research.

Key Words:Virtual laboratory; Unity 3D; .Net script

0 引言

虛擬實(shí)驗(yàn)室是一種基于計(jì)算機(jī)技術(shù),對(duì)實(shí)驗(yàn)過(guò)程還原并提供交互性的實(shí)驗(yàn)?zāi)J健L摂M實(shí)驗(yàn)室與遠(yuǎn)程教育特征非常相似,即都可以不受時(shí)間、地點(diǎn)約束,根據(jù)需要和時(shí)間進(jìn)行自主學(xué)習(xí)。但相比遠(yuǎn)程教育,虛擬實(shí)驗(yàn)室可以讓用戶有更好的沉浸感、交互性及實(shí)時(shí)性[1]。虛擬實(shí)驗(yàn)室不僅改變了學(xué)習(xí)方式,還因其低廉的成本而備受青睞。虛擬實(shí)驗(yàn)可使學(xué)生系統(tǒng)地參與實(shí)驗(yàn),快速掌握實(shí)驗(yàn)過(guò)程和步驟,實(shí)時(shí)交互性和漫游系統(tǒng)可讓使用者對(duì)實(shí)驗(yàn)全方位了解。

虛擬現(xiàn)實(shí)與教育結(jié)合必須建立在教育理論基礎(chǔ)上,促進(jìn)教育事業(yè)發(fā)展[2]。本文以土木工程專業(yè)擬靜力加載試驗(yàn)為例,設(shè)計(jì)了擬靜力加載虛擬實(shí)驗(yàn)室。

1 系統(tǒng)總體設(shè)計(jì)

虛擬實(shí)驗(yàn)室系統(tǒng)由虛擬場(chǎng)景搭建、數(shù)據(jù)處理存儲(chǔ)及功能實(shí)現(xiàn)等模塊組成。如圖1所示,系統(tǒng)利用3Ds Max三維建模技術(shù)及Photo Shop圖片處理技術(shù)進(jìn)行虛擬實(shí)驗(yàn)室、試驗(yàn)材料等場(chǎng)景搭建,結(jié)合ADINA有限元數(shù)值仿真分析軟件進(jìn)行數(shù)值仿真分析,將計(jì)算所得的數(shù)據(jù)在SQL數(shù)據(jù)庫(kù)中保存,通過(guò)Unity 3D技術(shù)和.Net腳本實(shí)現(xiàn)虛擬實(shí)驗(yàn)室功能[3]。

2 虛擬場(chǎng)景搭建

虛擬場(chǎng)景搭建是虛擬實(shí)驗(yàn)室系統(tǒng)設(shè)計(jì)的核心內(nèi)容,模型制作精細(xì)度、貼圖真實(shí)度、光影調(diào)整以及周圍環(huán)境的影響等都是需要考慮的重要因素。場(chǎng)景搭建分為3部分:①了解實(shí)驗(yàn)過(guò)程及實(shí)驗(yàn)儀器;②制作三維模型,進(jìn)行貼圖和導(dǎo)出工作;③導(dǎo)入U(xiǎn)nity進(jìn)行場(chǎng)景搭建。圖2、圖3為實(shí)驗(yàn)室加載裝置實(shí)物圖。

通過(guò)實(shí)際測(cè)量確定實(shí)驗(yàn)室和試驗(yàn)裝置尺寸后,進(jìn)行三維建模。建模使用3Ds Max和Photoshop組合,將建好的模型保存為FBX格式,導(dǎo)入到Unity 3D中,進(jìn)行場(chǎng)景環(huán)境和燈光搭建[4]。建模效果如圖4所示。

3 數(shù)據(jù)處理

虛擬試驗(yàn)系統(tǒng)的建立必須有實(shí)驗(yàn)數(shù)據(jù)支撐,從試驗(yàn)的加載到試驗(yàn)完成必須有數(shù)據(jù)顯示和曲線生成。墻體擬靜力試驗(yàn),通過(guò)對(duì)有限元數(shù)值仿真分析軟件(ADINA)和試驗(yàn)得出的數(shù)據(jù)比對(duì),找到最優(yōu)數(shù)據(jù),一般以ADINA數(shù)值仿真分析軟件提取的數(shù)據(jù)為主,建模過(guò)程如下:①點(diǎn)擊Points,首先建立一個(gè)點(diǎn),以點(diǎn)、線、面的形式建立物理模型;②點(diǎn)擊Element Group,為模型分組。此處只有一個(gè)模型單元,使用3D實(shí)體單元;③點(diǎn)擊Mesh Volumes,為模型劃分網(wǎng)格。ADINA為有限元計(jì)算軟件,網(wǎng)格劃分越細(xì),計(jì)算精度越高;④為模型添加材料,輸入泊松比、密度、楊氏模量、應(yīng)力應(yīng)變曲線等材料信息;⑤添加計(jì)算Time Step和Time Function;⑥分別點(diǎn)擊Apply Load和Apply Fixity按鈕,為模型添加力和邊界限制條件,墻體底面全固定,頂面分別施加一個(gè)豎向恒載和一個(gè)水平往復(fù)荷載[5]。

效果如圖5所示,提取的數(shù)據(jù)加載到Excel中,最后導(dǎo)入SQL數(shù)據(jù)庫(kù),為后續(xù)的數(shù)據(jù)顯示和曲線生成提供保證。

4 功能實(shí)現(xiàn)

功能實(shí)現(xiàn)即Unity 3D的場(chǎng)景整合、.Net腳本控制以及Winform窗體實(shí)現(xiàn)。.Net腳本主要實(shí)現(xiàn)三維模型在Unity 3D場(chǎng)景中的移動(dòng)、隱藏及顯示等,Winform窗體主要完成數(shù)據(jù)庫(kù)的讀取、數(shù)據(jù)顯示、曲線生成以及實(shí)驗(yàn)報(bào)告修改下載等功能。

4.1 Unity 3D場(chǎng)景整合

將在3Ds Max中做好的模型導(dǎo)入到Unity 3D中,根據(jù)實(shí)驗(yàn)室場(chǎng)景進(jìn)行擺放安置,同時(shí)利用UGUI的Text、Image、Raw Image、Button、Toggle、Slider、Scrollbar、DropDown、Input Field、Canvas、Panel、Scroll View等基礎(chǔ)控件完成兩個(gè)場(chǎng)景的UI界面設(shè)計(jì),即進(jìn)入場(chǎng)景(見(jiàn)圖6)和實(shí)驗(yàn)場(chǎng)景(見(jiàn)圖7)。

4.2 .Net腳本控制

.Net腳本控制,實(shí)現(xiàn)在Unity 3D中的動(dòng)態(tài)控制和展示,包括實(shí)驗(yàn)室漫游和交互式實(shí)驗(yàn)操作等。

4.2.1 漫游功能

虛擬實(shí)驗(yàn)常見(jiàn)的漫游有3種:①第一人稱漫游,在漫游過(guò)程中,借助鍵盤和鼠標(biāo)的操作實(shí)現(xiàn)前進(jìn)、后退、轉(zhuǎn)向等操作,借助攝像機(jī)視角獲取實(shí)驗(yàn)室信息。第一人稱的沉浸感更強(qiáng),能很好地把自己融入到實(shí)驗(yàn)場(chǎng)景中;②第三人稱漫游,可以在實(shí)驗(yàn)室中設(shè)置一個(gè)人物,人機(jī)交互過(guò)程與第一人稱漫游類似,不同的是,第三人稱漫游可以看到人物和實(shí)驗(yàn)室操作情況,通過(guò)控制人物行為,以第三視角觀察,更加清晰地看到實(shí)驗(yàn)的整體情況;③網(wǎng)格探路,通過(guò)點(diǎn)擊場(chǎng)景內(nèi)的路線、視角自動(dòng)探路,通過(guò)一系列計(jì)算實(shí)現(xiàn)網(wǎng)格自動(dòng)探路功能[6-7]。虛擬實(shí)驗(yàn)室主要以室內(nèi)實(shí)驗(yàn)為主,因此采用第一人稱漫游方式,對(duì)實(shí)驗(yàn)細(xì)節(jié)可以更好地觀察分析。設(shè)置第一人稱漫游,可根據(jù)實(shí)際需要,隨時(shí)對(duì)實(shí)驗(yàn)過(guò)程近距離觀察。為了增強(qiáng)虛擬實(shí)驗(yàn)室的真實(shí)感,可安裝固定視角觀看實(shí)驗(yàn)。鼠標(biāo)控制方向,鍵盤W、S、A、D分別控制前后左右,將第一人加入剛體組件。第一人稱漫游部分代碼如下:

[RequireComponent(typeof (Rigidbody))]

[RequireComponent(typeof (CapsuleCollider))]

public class RigidbodyFirstPersonController : MonoBehaviour{

[Serializable]

public class MovementSettings{

public float ForwardSpeed = 8.0f; // 前移速度

public float BackwardSpeed = 4.0f; // 后移速度

public float StrafeSpeed = 4.0f; // 左右移動(dòng)速度

public float RunMultiplier = 2.0f; // 加速度

public KeyCode RunKey = KeyCode.LeftShift;

public float JumpForce = 30f;

public AnimationCurve SlopeCurveModifier = new AnimationCurve(new Keyframe(-90.0f, 1.0f), new Keyframe(0.0f, 1.0f), new Keyframe(90.0f, 0.0f));

[HideInInspector] public float CurrentTargetSpeed = 8f;

#if !MOBILE_INPUT

private bool m_Running;

#endif

4.2.2 交互式實(shí)驗(yàn)操作功能

虛擬實(shí)驗(yàn)室人機(jī)交互操作包括材料尺寸的選擇、實(shí)驗(yàn)準(zhǔn)備、墻體吊裝、監(jiān)測(cè)設(shè)備安裝、豎向荷載加持、往復(fù)荷載加持等步驟。操作過(guò)程如下:

(1)實(shí)驗(yàn)材料和尺寸選擇。該過(guò)程在UI界面完成,本系統(tǒng)設(shè)置6種不同材料和尺寸的實(shí)驗(yàn)?zāi)>撸ㄟ^(guò)不同場(chǎng)景實(shí)現(xiàn)相應(yīng)選擇。以 “砌塊”選擇為例,主要實(shí)現(xiàn)代碼如下:

public void Click()

{

p0.SetActive(false);

if (Drop0.options[Drop0.value].text == "砌塊" && Drop1.options[Drop1.value].text == "1360*890*236")

{

p1.SetActive(true);

(2)實(shí)驗(yàn)準(zhǔn)備。實(shí)驗(yàn)?zāi)>叩牟牧虾统叽绱_認(rèn)后,開(kāi)始實(shí)驗(yàn)準(zhǔn)備階段,顯示要進(jìn)行的實(shí)驗(yàn)墻體、分配量及混凝土墊板等,主要實(shí)現(xiàn)代碼如下:

public GameObject wall;

public GameObject FenPL1;

public GameObject DianBan;

public void OnClick() {

wall.SetActive(true);

FenPL1.SetActive(true);

DianBan.SetActive(true);}

(3)開(kāi)始實(shí)驗(yàn)。點(diǎn)擊實(shí)驗(yàn)準(zhǔn)備按鈕后,場(chǎng)景固定攝像機(jī)視角如圖8,場(chǎng)景中出現(xiàn)實(shí)驗(yàn)的墻體模具、分配梁以及混凝土墊板,準(zhǔn)備進(jìn)行實(shí)驗(yàn)。

墻體的吊裝、分配量的移動(dòng)、橫向、縱向荷載加持原理相同,都是通過(guò)Translate方法實(shí)現(xiàn)的。仿真的荷載為橫載,加載過(guò)程一次性完成。彈出加載窗體即Winform窗體,窗體中顯示荷載大小及力-時(shí)間曲線等荷載信息。Translate實(shí)現(xiàn)代碼如下:

using UnityEngine;

using System.Collections;

public class WallTrans1 : MonoBehaviour {

public float speed = 30;

void Update(){

float step = speed * Time.deltaTime;

gameObject.transform.localPosition = Vector3.MoveTowards(gameObject.transform.localPosition, new Vector3(1861.3f, 60.1f, 1370.2f), step);}}

4.3 Winform窗體實(shí)現(xiàn)

Winform窗體主要包括虛擬實(shí)驗(yàn)室的加載機(jī)制及實(shí)驗(yàn)報(bào)告編寫窗體。窗體在Visual Studio 2010開(kāi)發(fā)環(huán)境中完成,界面仿照北京佛力系統(tǒng)公司的加載系統(tǒng)設(shè)計(jì),包括加載、暫停、結(jié)束、保存數(shù)據(jù)等按鈕以及曲線顯示模塊等[8],如圖9、圖10所示。

5 結(jié)語(yǔ)

虛擬實(shí)驗(yàn)室以Unity 3D為主要開(kāi)發(fā)環(huán)境,結(jié)合3Ds Max建模技術(shù)、Photo Shop圖像處理技術(shù)、Adina數(shù)值仿真分析技術(shù)以及.Net開(kāi)發(fā)技術(shù),將實(shí)驗(yàn)過(guò)程模擬仿真,學(xué)生通過(guò)電腦中的虛擬實(shí)驗(yàn)室就可以完成教學(xué)實(shí)驗(yàn),了解大型科研實(shí)驗(yàn)過(guò)程及相應(yīng)科研成果。虛擬實(shí)驗(yàn)室可反復(fù)進(jìn)行試驗(yàn),節(jié)約了大量花費(fèi),為虛擬現(xiàn)實(shí)技術(shù)以及Unity 3D技術(shù)在教育、科研方面應(yīng)用提供了一定的技術(shù)支撐。

參考文獻(xiàn):

[1] 汪明.工程制圖虛擬實(shí)驗(yàn)室的設(shè)計(jì)與研究[D].綿陽(yáng):西南科技大學(xué),2016.

[2] 史鐵軍.虛擬現(xiàn)實(shí)在教育中的應(yīng)用[D].沈陽(yáng):東北師范大學(xué),2008.

[3] 蔣德志,姚文龍,張均東.Unity 3D虛擬現(xiàn)實(shí)技術(shù)在機(jī)艙資源管理模擬器開(kāi)發(fā)中的應(yīng)用[J].中國(guó)航海,2015,38(3):14-17.

[4] 牛慶麗,薛煥堂,黃海林.基于Unity 3D的黃河風(fēng)景名勝區(qū)虛擬漫游的實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2015,11(20):149-154.

[5] 孫建剛,崔利富,王振,等.藏族民居砌體材料物理力學(xué)性能試驗(yàn)研究[J].大連民族學(xué)院學(xué)報(bào),2015,17(1):61-64.

[6] LU G P, XUE G H, CHEN Z. Design and implementation of virtual interactive scene based on unity 3D[J]. Advanced Materials Research,2011,1380(317):116-119.

[7] LIANG S. Design and implementation of virtual roaming based on unity3D[J]. Advanced Materials Research,2015,37(16):1079-1121.

[8] 王開(kāi)宇.基于C#的數(shù)據(jù)與視頻監(jiān)控上位機(jī)軟件設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2017,40(10):62-63.

(責(zé)任編輯:杜能鋼)

猜你喜歡
窗體第一人稱漫游
試談Access 2007數(shù)據(jù)庫(kù)在林業(yè)檔案管理中的應(yīng)用
漢代銅鏡銘文中的第一人稱
NASA漫游記
巧設(shè)WPS窗體控件讓表格填寫更規(guī)范
“我”最初是古代兵器
邊走邊看:漫游海底 夢(mèng)想成真
WinCE.net下圖形用戶界面的開(kāi)發(fā)