当前位置:网站首页>Introduction to A-frame virtual reality development
Introduction to A-frame virtual reality development
2022-07-04 00:41:00 【Brain in new VAT】
WebVR and WebGL API Has enabled us to start in Web Create virtual reality in browser (VR) Experience , But the community is still waiting for tools and libraries , To make this task easier .
Mozilla Of A-Frame The framework provides a markup language , Allow us to use Web System construction familiar to developers 3D VR scene , The system follows the coding principle of game development ; This is useful for rapid and successful prototyping and demonstration , Without writing a lot JavaScript or GLSL. This article explains how to start and run A-Frame, And how to use it to build a simple demonstration .
1、A-Frame summary
A-Frame The current version of is 0.3.2, This means that it is highly experimental , But it already works , You can test it immediately in the browser . It can be on a desktop 、 Mobile devices (iOS and Android) as well as Oculus Rift、Gear VR and HTC Vive Up operation .
A-Frame Based on the WebGL above , And provides pre built components for use in applications —— Model 、 Video player 、 Sky box 、 Geometry 、 Control 、 Animation 、 Cursor, etc . It is based on entity component system , This is well known in the field of game development , But it's for people who are familiar with markup structures Web Developer , You can use JavaScript To operate . The end result is enabled by default VR Of 3D Web experience .
2、 Environment settings
Let's first set up an environment to use A-Frame Create something . Then we will build a demo and run it . You should start :
- Make sure you use a good WebGL Modern browsers supported ( If available VR Hardware , It supports WebVR), For example, the latest Firefox or Chrome — download Firefox Nightly or Chrome(v54 Or later ).
- ( Optional ) Set up VR equipment , for example Oculus Rift or Google Cardboard.
- Create a new directory to save the project .
- Save the latest in your directory A-Frame JavaScript Copy of library file ( Check GitHub Repository to get the latest stable development version ).
- Open in a separate tab A-Frame file —— It's useful to refer to it .
3、HTML structure
The first step is to create a HTML file —— In your project directory , Create a new index.html file , And save the following HTML:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>MDN Games: A-Frame demo</title>
<script src="aframe.min.js"></script>
</head>
<body>
<!-- HTML goes here -->
</body>
</html>
This contains some basic information , For example, documents charset and
4、 Initialize the scene
The scene is where everything happens . When creating a new object in the demo , We will add them all to the scene to make them visible on the screen . stay A-Frame in , Scene by Scene entity Express .
Be careful : An entity is any element —— It can be like a box 、 Objects such as cylinders or cones , But it can also be a camera 、 Light source or sound source .
<a-scene>
Let's create a scene by adding an element to the element <body>
:
<a-scene>
</a-scene>
5、 Add cube
<a-box>
Add a cube to the scene by adding a simple element inside the element <a-scene>
. Now add it :
<a-box
color="#0095DD"
position="0 1 0"
rotation="20 40 0">
</a-box>
It contains some defined parameters :color and position—rotation These parameters are quite obvious , They define the primary color of the cube 、3D The position in the scene and the rotation of the cube .
Be careful : Distance value ( For example, Cube y Location ) Is unitless , Basically, it can be any value you think is suitable for your scene —— mm 、 rice 、 Feet or miles —— It's up to you .
6、 Add background : Sky box
Skybox is 3D The background of the world , Represented by an element . In our case , We will use simple colors , But it can also be images . Looking around gives people a feeling of being in the open sky 、 Impression of wooden barn —— No matter where you like ! Add the following before the element HTML :
<a-sky color="#DDDDDD"></a-sky>
here , If you save the code and refresh the browser , You can already see the cube with our custom background on the screen :
You can go to github View this code .
Link to the original text :A-Frame VR Introduction to development — BimAnt
边栏推荐
- From functional testing to automated testing, how did I successfully transform my salary to 15K +?
- The first training of wechat applet
- [software testing] you haven't mastered these real interview questions of big companies?
- Alibaba test engineer with an annual salary of 500000 shares notes: a complete set of written tests of software testing
- Reading notes on how programs run
- Understanding of Radix
- Is user authentication really simple
- [common error] custom IP instantiation error
- (Video + graphics and text) introduction to machine learning series - Chapter 4 naive Bayes
- P3371 [template] single source shortest path (weakened version)
猜你喜欢
Private project practice sharing populate joint query in mongoose makes the template unable to render - solve the error message: syntaxerror: unexpected token r in JSON at
The difference between objects and objects
[error record] configure NDK header file path in Visual Studio (three header file paths of NDK | ASM header file path selection related to CPU architecture)
Pytest unit test framework: simple and easy to use parameterization and multiple operation modes
A-Frame虚拟现实开发入门
Recommendation of knowledge base management system
@EnableAsync @Async
Sequence list and linked list
打印菱形图案
[dynamic programming] leetcode 53: maximum subarray sum
随机推荐
A method to solve Bert long text matching
Recommendation of knowledge base management system
AI Challenger 2018 text mining competition related solutions and code summary
Weekly open source project recommendation plan
Employees' turnover intention is under the control of the company. After the dispute, the monitoring system developer quietly removed the relevant services
Speed up the energy Internet of things. What can low-power Internet of things technology represented by Zeta do?
Suggestions for improving code quality
Struct in linked list
Gauss elimination method and template code
Global and Chinese markets of distributed control system (DCS) consumption 2022-2028: Research Report on technology, participants, trends, market size and share
Data mining vs Machine Learning: what is the difference between them? Which is more suitable for you to learn
[error record] configure NDK header file path in Visual Studio (three header file paths of NDK | ASM header file path selection related to CPU architecture)
The difference between fetchtype lazy and eagle in JPA
Swagger2 quick start and use
Future源码一观-JUC系列
MySQL 8.0.12 error: error 2013 (HY000): lost connection to MySQL server during query
URL (data:image/png; Base64, ivborw0k... Use case
How to use AHAS to ensure the stability of Web services?
查询效率提升10倍!3种优化方案,帮你解决MySQL深分页问题
P1629 postman delivering letter