vr的开发流程_vr虚拟现实 需要设备

vr的开发流程_vr虚拟现实 需要设备http://www.unitymanual.com/forum.php?mod=viewthread&tid=31034 原文出自游戏蛮牛本文介绍虚拟现实项目开发流程,共大家参考与学习,也希望各位提出意见…通过将现实中真实存在的构建在虚拟平台上,使得用户可以不在受时间、地点、位置和区域的限制来完成一些操作。=================================开发流程=

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

http://www.unitymanual.com/forum.php?mod=viewthread&tid=31034  原文出自游戏蛮牛

本文介绍虚拟现实项目开发流程,共大家参考与学习,也希望各位提出意见…通过将现实中真实存在的构建在虚拟平台上,使得用户可以不在受时间、地点、位置和区域的限制来完成一些操作。
=================================开发流程======================
开发流程:
1.虚拟现实开发流程: 通过调研、分析各个模块的功能。在具体开发过程中虚拟场景中的模型和纹理贴图都是来源于真实场景,事先通过摄像采集材质纹理贴图,和真实场景的平面模型,通过ps和maya(或者3dmax)来处理纹理和构建真实场景的三维模型,然后导入到unity3D构建虚拟平台,在U3D平台通过音效,图形界面,插件,灯光设置渲染,编写交互代码,最后发布设置。整体开发流程如下图1所示。

vr的开发流程_vr虚拟现实 需要设备 

2.建模技术:
      构建三维模型,在虚拟场景中看到的任何物品或者模型都是真实场景中实物的再现,这就是虚拟现实给人一种真实场景的感觉,建模是构建场景的基本要素,在建模过程中还有一点最重要就是模型的优化,一个好的虚拟现实项目不仅要运行流畅、给人以逼真的感觉同时还要保证模型的大小,保证程序发布之后不会占用太大的内存,(PS:基本的优化原则就是:制作简模,建模过程中基本上所有模型都是简模,对于相交的面要删除相交之后重复的面,尽量减少模型的点以达到优化的目的)

3.交互技术:
       除了场景模型的优化之外,交互技术也是虚拟现实项目的关键。unity3d负责整个场景中的交互功能开发,是将虚拟场景与用户连接在一起的开发纽带,协调整体虚系统的工作和运转。模型在导入Unity之前必须先导入材质后导入模型,这样防止了模型纹理材质的丢失图2是虚拟展示系统的界面设计。

vr的开发流程_vr虚拟现实 需要设备 
4.渲染技术:
       在做虚拟现实项目中,交互式基本,渲染是关键,一个好的项目,除了运行流畅之外,场景渲染的好坏也是成败的关键,好的、逼真的场景能给用户带来完成真实的沉浸感,对于用户来说真实感越好,月容易得用认可,才能做到真正的虚拟现实。基本渲染都是通过插件来实现,在需要高亮的地方设置shader,效果就是看到台灯真正可以感受到发亮的效果,地面倒影的效果和太阳光折射的效果。渲染效果如下图所示。

vr的开发流程_vr虚拟现实 需要设备 

vr的开发流程_vr虚拟现实 需要设备 

=================================实现过程======================
具体实现过程:
一、本文的UI界面并没有用插件来做,用Unity自带的GUILayout来实现。
vr的开发流程_vr虚拟现实 需要设备 


二、除了用GUILayout来构建图形面板,在ContrlRotation.cs类中还用到鼠标实现物体的360度旋转,也是通过最通过类的静态变量的判断,计算物体的坐标位置,通过鼠标单击旋转…

[C#] 
纯文本查看 
复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using
UnityEngine;
using
System.Collections;
public
class
ContrlRotation : MonoBehaviour {
    
public
float
m_fDeltaX;
    
public
float
m_fDeltaY;
    
public
float
m_fSpeed;
    
public
GameObject m_goRotateObject;
    
public
static
bool
m_bIsRotateObject;
// Use this for initialization
void
Start () {
    
m_fSpeed = 80;
        
m_bIsRotateObject =
false
;
}
// Update is called once per frame
void
Update () {
            
if
(Input.GetMouseButton(0))
            
{               
if
(ClickAndDeal.m_bIsFreeze && !UIManager.m_bIsInTextureWindowRect)
                
{
                    
m_fDeltaX = Input.GetAxis(
"Mouse X"
) * Time.deltaTime * m_fSpeed;
                    
m_fDeltaY = Input.GetAxis(
"Mouse Y"
) * Time.deltaTime * m_fSpeed;
                    
m_goRotateObject.transform.Rotate(
new
Vector3(0, -m_fDeltaX, m_fDeltaY), Space.World);                   
                
}
        
}
}
}


vr的开发流程_vr虚拟现实 需要设备 


三、通过gameObject.render.material.color来改变当前点击物体的颜色(当你点击物体的某个部位时,此时被点击的部分会改变颜色,提示用户当前点击了这部分),通过对R G B 颜色的改变,(其实最后发现没有必要这么来做,可以直接使用shader就可以实现)

[C#] 
纯文本查看 
复制代码
?
1
2
m_fColorG -= Time.deltaTime * m_fSpeed;
m_cTriggers[triggerIndex].transform.parent.gameObject.renderer.material.color =
new
Color(m_cTriggers[triggerIndex].transform.parent.gameObject.renderer.material.color.r, m_fColorG / 255, m_cTriggers[triggerIndex].transform.parent.gameObject.renderer.material.color.b);



四、灯光调节面板
     通过intensity来设置灯光的强度(类比此方法可以设置云、雨、雾、白天和黑夜),基本上类似的都是这样的设置



[C#] 
纯文本查看 
复制代码
?
1
2
3
4
GUI.Label(
new
Rect(10, 15, 90, 20),
"环境光1"
);
 
m_bIntensityIsOfMin = GUI.Toggle(
new
Rect(10, 35, 30, 30), m_bIntensityIsOfMin,
"弱"
);
 
m_bIntensityIsOfMax = GUI.Toggle(
new
Rect(240, 35, 30, 30), m_bIntensityIsOfMax,
"强"
);
 
m_lLight_1.intensity = GUI.HorizontalSlider(
new
Rect(40, 40, 200, 30), m_lLight_1.intensity, m_fIntensityMin, m_fIntensityMax);


vr的开发流程_vr虚拟现实 需要设备 


…..目前界面都是用自带的GUI做的,准备改用NGUI优化,以上基本是虚拟现实项目的一般流程,里面的知识基本上都是可以用到的,希望对大家有所帮助…..

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194319.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux安装Redis(图文解说详细版)「建议收藏」

    Linux安装Redis(图文解说详细版)「建议收藏」最近开个新坑,就是在linux环境中操作开发环境,带大家玩转Linux,会整理出一篇Linux的专栏,欢迎大家订阅!!富贵同学linux环境为CentOS7.8版本。这次说一下Redis的安装第一步,下载安装包https://redis.io/download第二步,上传安装包到/opt下(老规矩了,安装包在opt下)第三步,解压安装包tar-zxvfredis-6.2.6.tar.gz第四步,编译进入到reidis-6.2.6中输入make进行编译第五步,安装进入s

    2022年6月20日
  • 简单高效,分享几款我在使用的效率神器[通俗易懂]

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!今天周六了,分享几款我目前在用的小工具,希望对你有用。使用工具的好处等等,我就不过多介绍了,下面文章的内容是先简单介绍这几款工具,然后说明一下我是怎么应用的。简单的一个思维导图,看下本文全貌:文章目录神器介绍1、火柴-效率神器2、ALTRun – 快速启动3、Typora – Markdown 编辑器4、Snip…

    2022年2月28日
  • 从零开始学python微课视频版-从零开始学Python(微课视频版)

    从零开始学python微课视频版-从零开始学Python(微课视频版)基本信息书名:从零开始学Python(微课视频版):89.80元作者:何明编著著出版社:中国水利水电出版社出版日期:2020_04_01ISBN:9787517083818字数:644000页码:390版次:1装帧:平装开本:16开商品重量:编辑推荐这是一本针对零基础的读者设计的Python程序设计的入门教程、视频教程。该书以基础知识、实例和实战案例相结合的形式全面详尽地介绍了Python编程…

    2022年6月3日
  • linux无限刷屏代码,linux下如何实现简单刷屏

    linux无限刷屏代码,linux下如何实现简单刷屏今天为了测试我的LCD有没有坏点写了一个简单的刷屏程序,效果还不错,分析给大家。代码如下:#include#include#include#include#include#include#include#includeintmain(intargc,char*argv[]){intfbfd=0;structfb_var_screeninfovinfo;struct…

    2022年5月4日
  • VMware虚拟机安装Ubuntu16-18系统超详细过程(含下载地址)

     现在越来越多的服务器使用linux系统,甚至不少开发人员个人机也使用linux系统,一方面linux功能越来越强大、稳定,一方面linux的使用体验也越来越好,各种图形桌面,浏览器,办公软件,开发工具一应俱全,并且linux上的软件基本上全套都是开源免费。 Linux现在比较流行的就是Ubuntu、centos、还有老牌redhat等,本文主要介绍Ubuntu16的下载地址和详细的傻瓜式安装,…

    2022年4月7日
  • python 如何获取百度热点内容

    python 如何获取百度热点内容

    2022年2月20日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号