Intro to Java Monkey Engine Download JME loads/ loads/

Slides:



Advertisements
Similar presentations
Programming with OpenGL - Getting started - Hanyang University Han Jae-Hyek.
Advertisements

Graphics Pipeline.
Exploring JavaFX 3D Jim Weaver Java Technology Ambassador
CS 4731 Lecture 2: Intro to 2D, 3D, OpenGL and GLUT (Part I) Emmanuel Agu.
MAT 594CM S2010Fundamentals of Spatial ComputingAngus Forbes Overview Today: - Make sure everyone is set up with an OpenGL environment - OpenGL basics:
Lab 1: OpenGL Tutorial CS 282. What’s the plan for today? Go over our framework code. Learn some basic OpenGL! Reveal Lab 1 Answer questions.
Scenegraph. Scenegraph Nodes - all implement a run function Leaf/Geo Nodes - typedefs of sgNode superclass –Poly Mesh A geo node that stores a list of.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Better Interactive Programs Ed Angel Professor of Computer Science, Electrical and Computer.
Further Programming for 3D applications CE Introduction to Further Programming for 3D application Bob Hobbs Faculty of Computing, Engineering and.
Java 3D Pablo Figueroa University of Alberta April 2000.
Graphics Systems I-Chen Lin’s CG slides, Doug James’s CG slides Angel, Interactive Computer Graphics, Chap 1 Introduction to Graphics Pipeline.
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Models and Architectures Ed Angel Professor of Computer Science, Electrical and Computer.
1 of 12 Scene Graphs: the 50,000 ft View. 2 of 12 Traditional Definition Historical roots: Sketchpad  linear display lists  hierarchical display lists.
AGD: 5. Game Arch.1 Objective o to discuss some of the main game architecture elements, rendering, and the game loop Animation and Games Development.
3D Rendering with JOGL Introduction to Java OpenGL Graphic Library By Ricardo Veguilla
Week 1 - Friday.  What did we talk about last time?  C#  SharpDX.
1. 2  A computer is a device capable of storing data  in a format suited to the computer,  which is then processed by mathematical manipulation and.
Basic 3D Graphics Chapter 5. Bird’s Eye View  Basic 3D Graphics –Basic concepts of 3D graphics, rendering pipeline, Java 3D programming, scene graph,
Eriq Muhammad Adams J. | Informatics University of Brawijaya.
Objectives Review some advanced topics, including Review some advanced topics, including Chapter 8: Implementation Chapter 8: Implementation Chapter 9:
Overview of Previous Lesson(s) Over View  ASP.NET Pages  Modular in nature and divided into the core sections  Page directives  Code Section  Page.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Graphical Objects and Scene Graphs 1 Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009.
3D Objects Subject:T0934 / Multimedia Programming Foundation Session:12 Tahun:2009 Versi:1/0.
Week 2 - Wednesday CS361.
Image Synthesis Rabie A. Ramadan, PhD 2. 2 Java OpenGL Using JOGL: Using JOGL: Wiki: You can download JOGL from.
OpenGl Graphics Programming. Introduction OpenGL is a low-level graphics library specification. It makes available to the programmer a small set of geomteric.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
CSC 461: Lecture 3 1 CSC461 Lecture 3: Models and Architectures  Objectives –Learn the basic design of a graphics system –Introduce pipeline architecture.
Web Games Programming An Introduction to Unity 3D.
Computing & Information Sciences Kansas State University Lecture 20 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 21 of 42 William H. Hsu.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
COMPUTER GRAPHICS CSCI 375. What do I need to know?  Familiarity with  Trigonometry  Analytic geometry  Linear algebra  Data structures  OOP.
1 Better Interactive Programs. 2 Objectives Learn to build more sophisticated interactive programs using ­Picking Select objects from the display Three.
Computing & Information Sciences Kansas State University Lecture 19 of 42CIS 636/736: (Introduction to) Computer Graphics Lecture 19 of 42 William H. Hsu.
Shader Study 이동현. Vision engine   Games Helldorado The Show Warlord.
Useful Tools for Making Video Games Part II An overview of.
Program 2 due 02/01  Be sure to document your program  program level doc  your name  what the program does  each function  describe the arguments.
A Few Things about Graphics Jian Huang Computer Science University of Tennessee.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Computer Graphics: Programming, Problem Solving, and Visual Communication Steve Cunningham California State University Stanislaus and Grinnell College.
OpenGL-ES 3.0 And Beyond Boston Photo credit :Johnson Cameraface OpenGL Basics.
1 Angel: Interactive Computer Graphics5E © Addison- Wesley 2009 Image Formation Fundamental imaging notions Fundamental imaging notions Physical basis.
Graphical Objects and Scene Graphs Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
Lecture 7 Midterm Review. OpenGL Libraries gl: Basic OpenGL library, e.g. primitives. glu: OpenGL Utility library, a set of functions to create texture.
Antigone Engine. Introduction Antigone = “Counter Generation” Library of functions for simplifying 3D application development Written in C for speed (compatible.
XNA Tutorial 1 For CS134 Lecture. Overview Some of the hard work has already been done for you. If you build and run your game now, the GraphicsDeviceManager.
UFCFSU-30-13D Technologies for the Web An Introduction to Unity 3D.
GLSL Review Monday, Nov OpenGL pipeline Command Stream Vertex Processing Geometry processing Rasterization Fragment processing Fragment Ops/Blending.
CHAPTER 5 Graphics Drawing Audio. Chapter objectives: Learn to draw to a canvas Examine the process of adding drawn elements and UI controls to a layout.
Graphics Programming. Graphics Functions We can think of the graphics system as a black box whose inputs are function calls from an application program;
Computer Graphics (Fall 2003) COMS 4160, Lecture 5: OpenGL 1 Ravi Ramamoorthi Many slides courtesy Greg Humphreys.
Institute for Computer Graphics and Vision Computer Graphics and Interactive Systems 1 Grabner HS i4, 2006/03/08 Web3D, VRVU, SGP Web3D ( ) VRVU.
Intro to Java Monkey Engine
3D Modeling & Animation Software
Week 2 - Monday CS361.
3GB3 Game Design Unity 3D Basics.
Antigone Engine.
IAT 355 Scene Graphs Feb 23, 2017 IAT 355.
Graphical Objects and Scene Graphs
Graphical Objects and Scene Graphs
The Graphics Rendering Pipeline
.NET and .NET Core 7. XAML Pan Wuming 2017.
Chapter VI OpenGL ES and Shader
Blender API: Part 2: Game Engine
3D applications in Delphi
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
03 | Creating, Texturing and Moving Objects
Games Development 2 Tools Programming
Presentation transcript:

Intro to Java Monkey Engine Download JME loads/ loads/

JME Technology JME stands for the java monkey engine: a game engine written in java and built upon LWJGL (light-weight java GL -- a java binding for OpenGL) – OpenGL is a platform independent library for 2D and 3D graphics. – For our purposes, OpenGL is far too low-level for the kinds of graphics programming we'd like to accomplish OpenGL concerns itself with fast, often hardware accelerated, rendering of basic geometric primitives) – We appeal to a game engine to provide additional high-level functionality Note: JME provides audio capability via OpenAL support. JME supports Ogg Vorbis (.ogg) and uncompressed PCM Wave (.wav) formats. – We can use Audicity ( to convert other formats to thesehttp://audacity.sourceforge.net/)

Game-Level Objects Main Application (SimpleApplication) - A base class from which the custom game inherits – Provides method hooks (i.e., callbacks) to initialize a game (simpleInitApp) update game (simpleUpdate) objects and re-display (simpleRender) objects. – InputManager - A class to manage all device input (e.g., keyboard, mouse, joystick) and present that input to the application for handling. – Display - A class to insulate the game from the device specific characteristics of platform on which the game is being run. The Display also encapsulates the features of window management. – Renderer - An abstraction of the OpenGL state and rendering pipeline as discussed in class. OpenGL is a state-driven system. That is, you define a graphics state as a set of rendering attributes and then send a sequence of geometric data to the renderer which then is drawn subject to the current attributes. – The three classes above are referred collectively as the JME context.

The Main Game Loop

Game-Level Objects (cont) Main Application (SimpleApplication) - A base class from which the custom game inherits – Scene Graph - A class to manage the objects in the scene – Camera - A class to encapsulate the eye position and its attributes (e.g., field of view, depth of field, up vector, etc.). – Math Library for 3D Graphics (functions to handle vectors, matrices, geometric data, collisions, etc.). – Model Importers - A fully featured game engine provides for importing mesh models from any of several different modeling programs.

The Scene Graph A grouping of Nodes in a tree hierarchy according (most of the time) to spatial location. Spatially because … – Game objects are typically located by location – Allows for fast culling – Tree structure natural for many game objects – Easy to express, create tools for this data structure Spatial is an abstract class allowing uniform treatment of: – Node (internal, invisible, grouping class, transformable) – Geometry (leaf, visible—mesh and material— transformable).

Beginning a Project In the jMonkeyEngine SDK: Choose File→New Project… from the main menu. In the New Project wizard, select the template JME3→Basic Game. Click Next. – Specify a project name, e.g. "HelloWorldTutorial" – Specify a path where to store your new project, e.g. a jMonkeyProjects directory in your home directory. Click Finish.

Understanding the JME App Structure public class Main extends SimpleApplication { public static void main(String[] args) { Main app = new Main(); app.start(); }

Understanding the JME App Structure public class Main extends SimpleApplication public void simpleInitApp() { Box b = new Box(Vector3f.ZERO, 1, 1, 1); Geometry geom = new Geometry("Box", b); Material mat = new Material(assetManager, “…"); mat.setColor("Color", ColorRGBA.Blue); geom.setMaterial(mat); rootNode.attachChild(geom); }

Understanding the JME App Structure public class Main extends SimpleApplication public void simpleUpdate(float tpf) { //TODO: add update code public void simpleRender(RenderManager rm) { //TODO: add render code }

Typical Game Objects Spatial: Spatials are abstract and exist to allow handling of the Nodes and Geometry uniformly. – Node (internal, i.e. has children) contains transformations and links to children (no Mesh or Material--invisible) – Geometry (leaf) contains transformations and visible characteristics, i.e., Mesh and Material

Typical Game Objects – Geometry (leaf) contains transformations and visible characteristics, i.e., Mesh and Material Mesh Material – Color (Ambient, Diffuse, Emmisive, Specular) - Base color of an object that is not influenced by a color map – Texture » Color Map » Specular Map » Bump Map (Height Map, Normal Map)

Typical Game Objects Distinguished Spatials – rootNode – Camera

Getting Started One of the better ways to learn what you can do in JME is to: Examine the JME Tests Complete the JME "Tutorial Series ( p/jme3:beginner) p/jme3:beginner)