3D Virtual Reality Painting

Slides:



Advertisements
Similar presentations
Introduction to Direct3D 10 Course Porting Game Engines to Direct3D 10: Crysis / CryEngine2 Carsten Wenzel.
Advertisements

Sven Woop Computer Graphics Lab Saarland University
Games, Movies and Virtual Worlds – An Introduction to Computer Graphics Ayellet Tal Department of Electrical Engineering Technion.
Zhiguo Ge, Weng-Fai Wong, and Hock-Beng Lim Proceedings of the Design, Automation, and Test in Europe Conference, 2007 (DATE’07) April /4/17.
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
Survey of Graphics and Games. Outline Overview of computer graphics – Coursework – Research Programming using game engines Computer game and animation.
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
Chapter 3.2 C++, Java, and Scripting Languages “The major programming languages used in game development.”
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
Memory Management 1 CS502 Spring 2006 Memory Management CS-502 Spring 2006.
CS-3013 & CS-502, Summer 2006 Memory Management1 CS-3013 & CS-502 Summer 2006.
Chapter 5: Memory Management Dhamdhere: Operating Systems— A Concept-Based Approach Slide No: 1 Copyright ©2005 Memory Management Chapter 5.
Parallel Rendering Ed Angel
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
Ch 1 Intro to Graphics page 1CS 367 First Day Agenda Best course you have ever had (survey) Info Cards Name, , Nickname C / C++ experience, EOS experience.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Basic 3D Graphics Chapter 5. Bird’s Eye View  Basic 3D Graphics –Basic concepts of 3D graphics, rendering pipeline, Java 3D programming, scene graph,
Things you need to know George Georgiev Telerik Corporation
Computer Graphics 2 Lecture x: Acceleration Techniques for Ray-Tracing Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
OOP and Web Applications Michael Juřek Architect Evangelist Microsoft Corporation.
Sector Engine Overview VERSION COMING JUNE, 2015 Sector Engine is still in development, this presentation could change in the future.
Facial animation retargeting framework using radial basis functions Tamás Umenhoffer, Balázs Tóth Introduction Realistic facial animation16 is a challenging.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
Yingcai Xiao Voxel Game Engine Development. What do we need? What tools do we have? How can we design and implement? We will answer those questions in.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
Khoros Yongqun He Dept. of Computer Science, Virginia Tech.
Nick Draper 05/11/2008 Mantid Manipulation and Analysis Toolkit for ISIS data.
1 Real-time visualization of large detailed volumes on GPU Cyril Crassin, Fabrice Neyret, Sylvain Lefebvre INRIA Rhône-Alpes / Grenoble Universities Interactive.
Interactive Rendering With Coherent Ray Tracing Eurogaphics 2001 Wald, Slusallek, Benthin, Wagner Comp 238, UNC-CH, September 10, 2001 Joshua Stough.
Fast BVH Construction on GPUs (Eurographics 2009) Park, Soonchan KAIST (Korea Advanced Institute of Science and Technology)
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
Subject Name: Computer Graphics Subject Code: Textbook: “Computer Graphics”, C Version By Hearn and Baker Credits: 6 1.
Visualization Four groups Design pattern for information visualization
Greg Humphreys CS445: Intro Graphics University of Virginia, Fall D Object Representations Greg Humphreys University of Virginia CS 445, Fall 2003.
GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.
PhD Defense Emanuele Ruffaldi
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
Image Fusion In Real-time, on a PC. Goals Interactive display of volume data in 3D –Allow more than one data set –Allow fusion of different modalities.
Abstract Panoramic Virtual Reality Motivation to Use Virtual Reality VR Types
Martin Kruliš by Martin Kruliš (v1.0)1.
Computer Engg, IIT(BHU)
X3DOM : Integrating 3D content seamlessly into webpage
Kai Li, Allen D. Malony, Sameer Shende, Robert Bell
Real-Time ray casting for virtual reality
GVDB: Raytracing Sparse Voxel Database Structures on the GPU Rama Hoetzlein, NVIDIA High Performance Graphics 2016 Trinity College, Dublin.
Matlab.
Binary Notation and Intro to Computer Graphics
CUDA Interoperability with Graphical Environments
CS427 Multicore Architecture and Parallel Computing
ICG Syllabus 1. Introduction 2. Viewing in 3D and Graphics Programming
Visualization Shading
Data Structure and Algorithms
Chapter 18 MobileApp Design
Web3D Consortium X3DOM: Next-Generation Web3D Applications on Open Standards and Open Source Web3D Consortium
Real-Time Ray Tracing Stefan Popov.
3D Object Representations
Introduction to Computers
Hybrid Ray Tracing of Massive Models
Data Structures and Analysis (COMP 410)
End-of-Term Winter Progress Report
Unit 20 Software Part 2.
Unit 20 Software Part 2.
Chapter I Introduction
Chapter 2: Operating-System Structures
Introduction to spagetti and meatballs
Chapter 2: Operating-System Structures
Running C# in the browser
Games Development 2 Entity / Architecture Review
Presentation transcript:

3D Virtual Reality Painting

Project idea: Create art through movement VR based motion controls Create, destroy, modify geometry Save/Load a scene Explore the technology

Project Challenges Developing an as-of-yet unexplored technology Creating an interface in 3D space Developing

Challenges of VR Unexplored field Requires significant experimentation

Developing a 3D interface New Design paradigm Also requires experimentation

Manipulating Geometry Dependent on multiple systems Requires coordination of different components Has a much more accessible body of reference

Working in uncharted waters Few points of reference Exploratory in nature Will require fast, discrete development cycles

Needs of the project Run efficiently Measure movement precisely Maintain low latency Freedom to express

VR Hardware Comparison Oculus Efficient Supports native API Vive Powerful Compatibility with Steam VR Gear VR Cheap Compact setup

Tracking Solution Motion Capture: Accurate, flexible, scaleable Large overhead, can cause conflicts in development Integrated VR System: Easy for development, supported by existing systems, reliable, reproducible Not scalable, harder for multiple objects DodecaPen: Accurate, low hardware overhead, scalable No supported system, harder to develop and integrate

User Interface Tools Unreal: Large expansive Library, UMG Only experimental in world space UIs Unity: Dedicated VR UI structures, large community Lots of models to choose from CryEngine Game object inheritance Limited supported VR integration

Geometric Representations NURBS Triangles Voxels

NURBS NURBS Spline

Triangles

Voxels

Data Organization 3D Array Binary Space Partition Tree Sparse Voxel Octree

3D Array

Binary Space Partition Tree 1 2 2 1 2 2

Sparse Voxel Octree

Rendering Method Ray Tracing Higher fidelity More computationally expensive Voxel Cone Tracing More efficient Still allows for dynamic and inter reflection

Scripting Language C# Has selective architecture optimization Most common language for game engine scripting Large library of code assets C++ Compiled Available for Unreal

Graphics API Khronos Large, open library Extensive shader resources Low level development in Vulkan DirectX Efficient device driver support Has compute shader capability Powerful rendering

Loading Tool Code Statically Defined Dynamic Loading Code Injection into a Template

Game Engine Unity Large library of free assets Lower learning curve Lower hardware requirements Uses C# Unreal Powerful renderer Visual scripting Uses C++

User interface Movement Options Inactive State Active State Nodes - Page traversal Elements - Tool access

The Interchange

The Voxel State Holds all of the data representing the virtual environment Holds additional information to manage this data in memory Consists of: Nodes The Data Buffer The Head Buffer The Heap Buffer

Nodes struct node { int8 Meta; int24 Surface; int32 Attributes[3]; Byte ? 0 ? 1 ? 2 ? 3 ? 4 ? 5 ? 6 ? 7 struct node { int8 Meta; int24 Surface; int32 Attributes[3]; int32 Children[8]; }; 0 ? Meta Surface Attribute 0 1 ? Attribute 1 Attribute 2 2 ? Child 0 Child 1 3 ? Child 2 Child 3 4 ? Child 4 Child 5 5 ? Child 6 Child 7

The Data Buffer Initial State Mid-use State Heap 0 Heap 1 ... Heap N Head 0 Head 1 ... Head N Node Node Node Node Node Node Node Node ... ... … ... Node Node Node Node Mid-use State Heap 0 Heap 1 ... Heap N Head 0 Head 1 ... Head N Node Node Node Node Node Node Node Node ... ... … ... Node Node Node Node

The Head Buffer Head 0 Head 1 ... Head N

The Heap Buffer Heap 0 Heap 1 Heap 2 Heap 3 ...

Yggdrasil Voxel State Rendering and Manipulation Engine Composed of a suite of GPU-native programs: The Memory Manager The Tool Executer The Renderer

The Memory Manager 110 111 100 101 Swap 0 Swap 1 Swap 2 010 011 000 001

The Tool Executer Exit Find the Smallest Voxel Bounding the Stroke Requires further depth? Determine New Voxel Data Nodes Need to Be Freed? At maximum depth? Traverse Deeper Free Nodes At Root Node? Yes No Node Allocation Required? Traverse Higher Injected Code Allocate Node

The Renderer Sample 0 Sample 1 Sample 2 Sample 3

HMD Research Oculus: Lower hardware demand, API support, good resolution and speed Small volume tracking space HTC Vive: Great resolution, API support, large tracking space and good speed More performance demand Gear VR: Accessible to users Harder for development

User interface Movement Options Inactive State Active State Nodes - Page traversal Elements - Tool access

Future Plans

References [1] M. Brown. (2017) How to apply skins to your htc vive controllers. [Online]. Available: http://web.archive.org/web/20080207010024/http: //www.808multimedia.com/winnt/kernel.htm [2] M. Botsch, M. Pauly, C. Rossl, S. Bischoff, and L. Kobbelt, “Geometric modeling based on triangle meshes,” in ACM SIGGRAPH 2006 Courses, ser. SIGGRAPH ’06. New York, NY, USA: ACM, 2006. [Online]. Available: http://doi.acm.org/10.1145/1185657.1185839 [3] D. Santa-Cruz and T. Ebrahimi, “Coding of 3d virtual objects with nurbs,” Signal Processing, vol. 82, no. 11, pp. 1581 – 1593, 2002. [Online]. Available: http://www.sciencedirect.com/science/article/pii/S0165168402003031 [4] B. Naylor, “Binary space partitioning trees as an alternative representation of polytopes,” Computer-Aided Design, vol. 22, no. 4, pp. 250–252, 1990. [5] C. L. Jackins and S. L. Tanimoto, “Oct-trees and their use in representing three-dimensional objects,” Computer Graphics and Image Processing, vol. 14, no. 3, pp. 249–270, 1980. [6] T. K. G. Inc. (2017) Shader compilation. [Online]. Available: https://www.khronos.org/opengl/wiki/Shader Compilation [7] “Cryengine,” http://docs.cryengine.com/display/CEMANUAL/VR+Support, accessed: 2017-11-21. [8] “Unity,” https://docs.unity3d.com/Manual/index.html, accessed: 2017-11-21. [9] “Unreal,” https://docs.unrealengine.com/latest/INT/l, accessed: 2017-11-21.

References [10] B. Cuneo, C. Bakkom, R. Cunard: CS Capstone Problem Statement, VR Painting Application. Oregon State University, 20 Oct, 2017. [11] B. Cuneo, C. Bakkom, R. Cunard: CS Capstone Requirements Document, VR Painting Application. Oregon State University, 3 Nov, 2017. [12] R. Cunard. CS Capstone Technology Review, VR Painting Application. Oregon State University, 21 Nov, 2017. [13] C. Bakkom: CS Capstone Technology Review, VR Painting Application. Oregon State University, 21 Nov, 2017. [14] B. Cuneo: CS Capstone Technology Review, VR Painting Application. Oregon State University, 21 Nov, 2017. [15] B. Cuneo, C. Bakkom, R. Cunard: CS Capstone Design Document, VR Painting Application. Oregon State University, 1 Dec, 2017.