C A R L V O N O S S I E T Z K Y. Wavefront OBJ Format. Johannes Diemke. Übung im Modul OpenGL mit Java Wintersemester 2010/2011

Ähnliche Dokumente
C A R L V O N O S S I E T Z K Y. Texture-Mapping. Johannes Diemke. Übung im Modul OpenGL mit Java Wintersemester 2010/2011

C A R L V O N O S S I E T Z K Y. Transformationen. Johannes Diemke. Übung im Modul OpenGL mit Java Wintersemester 2010/2011

C A R L V O N O S S I E T Z K Y. Licht & Material. Johannes Diemke. Übung im Modul OpenGL mit Java Wintersemester 2010/2011

Geometrische Primitive und Hidden Surface Removal

Einführung in JOGL 2.0

3D-Druckformate und COLLADA

Seminar Game Development Game Computer Graphics. Einleitung

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework

2. Den einzelnen Objekten Material zuteilen. Die Materialien können mit Farben versehen werden (siehe 4) oder mit einer Image Textur (siehe 5).

4.8 Das Grafik-Datenformat.obj

Trainingsangebote. Ich biete für die aufgelistete Software im Bereich Visualisierung, Schulungen an.

Script Pause

BUILDINGS FROM IMAGES T H I E N P H A M G R U N D S E M I N A R W S 1 5 / 1 6 B E T R E U E R : P R O F. D R. P H I L I P P J E N K E

0 Einführung. Computergrafik. Computergrafik. Abteilung für Bild- und Signalverarbeitung

Programmierpraktikum 3D Computer Grafik

Universität Trier FB IV Mathematik PS Mathematics for 3D Game Programming & Computer Graphics - WS 07/08 Seminarleiter: Prof. Dr.

Institut für Informatik

BlendaX Grundlagen der Computergrafik

Shader. Computer Graphics: Shader

Praxisorientierte Einführung in die Computergraphik - Vorlesungsplan -

Computer Graphics Shader

Beleuchtung. in Computerspielen

blender Erstellung von Materialien Material-Beispiele

Computer Graphik I Generative Computergraphik Intro

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU

Herausgeber. Im Auftrag von. Kontakt. Heike Neuroth Hans Liegmann ( ) Achim Oßwald Regine Scheffel Mathias Jehn Stefan Strathmann

RTT DeltaGen Suite. Materialeinstellungen für OpenGL, RTT RealTrace & Global illumination. Copyright 2010 by Realtime Technology AG

Jörn Loviscach Hochschule Bremen

Beleuchtung Schattierung Rasterung

Rendering: Lighting and Shading

OpenGL und die Fixed-Function-Pipeline

Wissenschaftlich-Technische Visualisierung

How to make a PIXAR movie

Szenengraphen. Codruţa Cosma. Universität Ulm Sommersemester 2005

blender Erstellung von Materialien Material-Beispiele

Softwareprojekt Spieleentwicklung

Die Welt der Shader. Fortgeschrittene Techniken III

Proseminar: Virtuelle Präsenz. Vortrag: Steve Rechtenbach

VECTOR TILES DIE ZUKUNFT VON WEBGIS?

Blender 4 Game Development

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 2. Spezifikation Schrittweise Verfeinerung

Prof. Dr. Tobias Breiner

Dieser Artikel ist ein Auszug aus dem nestor Handbuch: Eine kleine Enzyklopädie der digitalen Langzeitarchivierung

SWP Übersetzerbau im SS 13 Einführung und Organisatorisches. Till Zoppke Maximilian Konzack Yves Müller Freie Universität Berlin

Programmierpraktikum 3D Computer Grafik

Polygone - Bausteine der Computergrafik

3D-Scans verbessern: MeshLab

Animation der Montage von CATIA-Bauteilen

Wofür soll Survey2GIS eingesetzt werden?

Grundlagen der Spieleprogrammierung

Übersicht. Softwarearchitektur. Softwarearchitektur, UML, Design Patterns und Unit Tests. Softwarearchitektur

Informatik Fakultät Lehrstuhl für Computergrafik und Visualisierung. René Lützner

Linien- / Flächenfindung in Bildern der PMD-3D-Kamera. Hochschule für Technik und Wirtschaft Dresden

Klassen und Objekte. Klassen und Objekte

GPU Programmierung 6. Juli 2004 M. Christen, T. Egartner, P. Zanoni

Praktikum 3D-Modellierung mit Blender

Beleuchtung Schattierung Rasterung

Java 3D. Linien, Flächen und Objekte Axel Bartsch, Okt. 2002

Objekte für Train Simulator 2013 mit Blender 2.65 erstellen. (Teil4) eine einfache Animation erstellen

Quantifizierung von Thermographieaufnahmen

Spieleprogrammierung mit DirectX und C++

Grundlagen der Computergrafik

Tutorial: Materialien - Chrom mit Raytracing Stand:

Christina Nell. 3D-Computergrafik


Der Baby Step, Giant Step Algorithmus

Algorithms for graph visualization

Vorlesung Algorithmen für hochkomplexe Virtuelle Szenen

Computergrafik 2008 Oliver Vornberger. Kapitel 19: Texturing

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

V by WBR1/BFH-TI 2011 by MOU2/BFH-TI

Michael Bender Martin Brill. Computergrafik. Ein anwendungsorientiertes Lehrbuch. 2., überarbeitete Auflage HANSER

Computergrafik. Michael Bender, Manfred Brill. Ein anwendungsorientiertes Lehrbuch ISBN Inhaltsverzeichnis

Algorithmen und Datenstrukturen

Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker

Übungsblatt 10: Klausurvorbereitung

(1) Geometrie. Vorlesung Computergraphik 3 S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU

Programmiermethodik 1. Klausur

3D Rendering mit PHP. Die neue PEAR-Klasse Image_3D bietet die Möglichkeit nur mit PHP5 3DGrafiken zu rendern

Einführung Augmentierte Bildsynthese

Google Earth: 3D-Modelle, Formate, Standards

Mesh-Visualisierung. Von Matthias Kostka. Visualisierung großer Datensätze

Python zur Lösung von AvA Übung 1 VON MORITZ FEY

Einem Objekt ein Teil hinzufügen. Was man für diese Anleitung benötigt:

Praktikum 3D-Modellierung mit Blender

3D Programmierpraktikum: Szenegraphen und Texturierung

Kapitel 4: Schattenberechnung

Übersicht & Einführung

Adaptives Displacement Mapping unter Verwendung von Geometrieshadern

Modernisierung von Forms durch neues Look&Feel

Computergrafik 1 Übung

3d XML, 3d XML Player

Workshop Einführung in die Sprache Haskell

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Technische Richtlinie XML-Datenaustauschformat für hoheitliche Dokumente (TR XhD) 1 Rahmenwerk

Transkript:

C A R L V O N O S S I E T Z K Y Wavefront OBJ Format Johannes Diemke Übung im Modul OpenGL mit Java Wintersemester 2010/2011

Motivation 3D-Modelle bestehen i. d. R. aus Tausenden von Dreiecken Händische Definition im Quellcode nahezu unmöglich Spezielle 3D Modellierungssoftware notwendig Im Bereich der Computerspiele ist 3ds Max beliebt Blizzard Entertainment Crytek Electronic Arts Remedy Entertainment... Blender stellt eine Open Source Alternative dar Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 2/19

Wavefront OBJ Dateien Wavefront s Advanced Visualizer Format Definieren Geometrie und dessen Eigenschaften Polygonale Objekte Freiform-Objekte (Kurven und Flächen) Material inkl. Texturen Animation wird nicht unterstützt Existiert als ASCII Format (.obj) und binäres Format (.mod) Von nahezu allen Programmen unterstützt Mitlerweile aber obsolet COLLADA Vollständige Spezifikation: http://local.wasp.uwa.edu.au/~pbourke/dataformats/obj/ Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 3/19

Das ASCII Dateiformat (.obj) Einfache ASCII Textdatei Menschenlesbar Theoretisch im Texteditor editierbar Enthält Anweisungen zur Definition von Vertices Texturkoordinaten Normalen Faces Material-Gruppen Polygon-Gruppen Benannte Objekte Smoothing Groups Freiform-Objekte Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 4/19

#-Anweisung Zeilen die mit einem Rautenzeichen beginnen sind Kommentare # a comment line v-anweisung Definiert einen Vertex Als Argumente folgen die x-,y- und z-komponente Werden fortlaufend, beginnend bei eins, durchnummeriert v x y z vt-anweisung Definiert eine Texturkoordinate Als Argumente folgen die u-,v- und optionale w-komponente Werden fortlaufend, beginnend bei eins, durchnummeriert vt u v [w] Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 5/19

vn-anweisung Definiert eine Normale Als Argumente folgen die x-,y- und z-komponente Werden fortlaufend, beginnend bei eins, durchnummeriert vn x y z f-anweisung Definiert Polygon über eine Liste von n-tupeln aus Indizes auf Vertices Texturkoordinaten (optional) Normalen (optional) Vertices werden standardmäßig CCW angegeben Definition durch Angabe einer Liste von Vertices f v1 v2 v3 v4... Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 6/19

f-anweisung (Forts.) Definition durch Angabe einer Liste von 2-Tupeln bestehend aus einem Vertex und einer Texturkoordinate f v1/vt1 v2/vt2 v3/vt3... Definition durch Angabe einer Liste von 3-Tupeln bestehend aus einem Vertex, einer Texturkoordinate und einer Normale f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3... Texturkoordinaten können auch weggelassen werden f v1//vn1 v2//vn2 v3//vn3... Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 7/19

g-anweisung Dient der Gruppierung von Polygonen Alle auf eine Gruppen-Definition folgenden Polygone sind Teil der Gruppe g group_name1 [group_name2]... mtllib-anweisung Gibt die zu verwendenen externen MTL-Dateien (.mtl) an Material Libraries definieren durch usemtl nutzbare Materialien mtllib filename1 [filename2]... Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 8/19

usemtl-anweisung Bestimmt das für nachfolgende Polygone zu nutzende Material Material wird in externer MTL-Datei (.mtl) definiert usemtl name s-anweisung Definiert die zu verwendene Smoothing-Gruppe Dient der Gruppierung von Polygonen zur interpolierten Normalenberechnung Wird nur bei Abwesenheit von Vertex-Normalen berücksichtigt Ist das Argument off oder 0 wird keine Smoothing-Gruppe verwendet s number off 0 Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 9/19

Wavefront MTL Dateien Material Library Einfache ASCII Textdatei (.mtl) Definiert aus OBJ-Dateien referenzierbare Materialien Materialfarben Transparenz Texturen Berücksichtigt keine neueren Entwicklungen Aktuelle Software ergänzt das ursprüngliche Format Specular Maps Parallax Maps Vollständige Spezifikation: http://local.wasp.uwa.edu.au/~pbourke/dataformats/mtl/ Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 10/19

newmtl-anweisung Beginnt eine neue Materialdefinition Über den Namen kann das Material später referenziert werden newmtl material_name Ka-Anweisung Definiert ambiente Materialfarbe Ka r g b Kd-Anweisung Definiert diffuse Materialfarbe Kd r g b Ks-Anweisung Definiert spiegelnde Materialfarbe Ks r g b Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 11/19

Ns-Anweisung Definiert spiegelnden Exponenten s Ns s d-anweisung und Tr-Anweisung Definieren beide die Transparenz d transparency map-anweisung und bump-anweisung Definiert zu verwendene Texturen map_ka lenna.tga map_kd lenna.tga map_ks lenna.tga map_d lenna_alpha.tga map_bump lenna_bump.tga bump lenna_bump.tga # the ambient texture map # the diffuse texture map # the specular texture map # the alpha texture map # the bump map # some implementations use "bump" Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 12/19

Beispiel: exd9xl a.obj # Wavefront OBJ file # Converted by the DEEP Exploration Deep Exploration 5.5 5.5.3.2642 Release # Right Hemisphere, LTD # http://www.righthemisphere.com/ mtllib exd9xl_a.mtl # object cockpitr g cockpitr v -0.74229 1.30720 1.01731 v -0.75097 1.28629 1.01731 v -0.74229 1.30720 1.05808... # 1087 verticies vt 0.05055 0.91097 vt 0.05055 0.95106 vt 0.05453 0.91097... Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 13/19

Beispiel: exd9xl a.obj (Forts.)... # 427 texture verticies vn 0.96364 0.00865-0.26707 vn 0.99695-0.00076 0.07800 vn 0.68719-0.67580-0.26659... # 1027 normals usemtl Material_4 f 1/1/1 3/2/2 2/3/3 f 4/4/4 2/3/3 3/2/2 f 2/3/3 4/4/4 5/5/5... Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 14/19

Beispiel: exd9xl a.mtl # Wavefront material file # Converted by the DEEP Exploration Deep Exploration 5.5 5.5.3.2642 Release # Right Hemisphere, LTD # http://www.righthemisphere.com/ newmtl Material_4 Ka 1 1 1 Kd 1 1 1 Ks 0.498039 0.498039 0.498039 illum 2 Ns 119.428 map_kd exdx.png map_bump bump map_opacity map_d refl map_ks map_ka map_ns Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 15/19

Beispiel: exd9xl a.obj Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 16/19

Implementierung eines OBJ Loaders Häufig wird nur eine Teilmenge des OBJ Standards implementiert I. d. R. nur Polygonale Objekte Material & Texturen Keine Freiform-Objekte Zur Darstellung entsprechende Datenstrukturen aufbauen Werden Gruppen, Smoothing-Groups oder Materialien benötigt? Naive Implementierung Für jedes Dreieck Material & Textur setzen Viele State Changes Performance-Problem Gruppierung nach verwendetem Material Alle Dreiecke mit gleichem Material in Material-Gruppe Material-Gruppen mit Vertex-Arrays oder VBOs rendern Minimiert die Anzahl der State Changes Performance-Gewinn Materialien nutzen teilweise gleiche Texturen Wiederverwendung Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 17/19

Literatur Dave Shreiner OpenGL Programming Guide http://www.opengl-redbook.com/ Richard S. Wright, Benjamin Lipchak und Nicholas Haemel OpenGL SuperBibel http://www.starstonesoftware.com/opengl/ Randi J. Rost OpenGL Shading Language http://www.3dshaders.com/ Tomas Akenine-Möller, Eric Haines und Naty Hoffman Real-Time Rendering http://www.realtimerendering.com/ Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 18/19

Literatur Edward Angel Interactive Computer Graphics http://www.cs.unm.edu/ angel/ Gerald Farin und Dianne Hansford Practical Linear Algebra http://www.farinhansford.com/books/pla/ Fletcher Dunn und Ian Parberry 3D Math Primer for Graphics and Game Development www.gamemath.com/ Johannes Diemke OpenGL mit Java WiSe 2010 / 2011 19/19