Computer Graphics Programming in OpenGL with Java 2nd Edition

所需积分/C币:9 2018-09-29 10:26:29 20.05MB PDF
收藏 收藏

This new edition provides step-by-step instruction on modern 3D graphics shader programming in OpenGL, along with its theoretical foundations. It is appropriate both for computer science undergraduate graphics programming courses in degree programs that emphasize Java, and for professionals interested in mastering 3D graphics skills who prefer Java. It has been designed in a 4-color, teach-yourself format with numerous examples that the reader can run just as presented. New sections have been added covering soft shadows, performance optimization, Nsight debugging, as well as updated industry-standard libraries and steps for running the examples on a Macintosh. Includes companion DVD with source code, models, textures, etc. used in the book. FEATURES: Includes new sections on implementing soft shadows, performance optimization, and updated tools and libraries such as the JOML math library and Nvidia's Nsight. Covers modern OpenGL 4.0+ shader programming in Java, using Windows or Mac. Illustrates every technique with complete running code examples. Everything needed to install JOGL and run every example is provided and fully explained. Includes step-by-step instruction for every GLSL programmable pipeline stage (vertex, tessellation, geometry, and fragment) - with examples.
LICENSE, DISCLAIMER OF LIABILITY, AND LIMITED WARRANTY By purchasing or using this book and its companion files( the "Work"),you agree that this license grants permission to use the contents contained herein, but does not give you the right of ownership to any of the textual content in the book or ownership to any of the information or products contained in it. This license does not permit uploading of the work onto the internet or on a network(of any kind) without the written consent of the publisher. Duplication or dissemination of any text, code, simulations, images, etc. contained herein is limited to and subject to licensing terms for the respective products, and permission must be obtained from the publisher or the owner of the content etc in order to reproduce or network any portion of the textual material (in any media) that is contained in the work MERCURY LEARNING AND INFORMATION (MLI'or"the Publisher")and anyone involved in the creation, writing, or production of the companion disc, accompanying algorithms, code, or computer programs("the software), and any accompanying Web site or software of the Work, cannot and do not warrant the performance or results that might be obtained by using the contents of the Work The author, developers, and the publisher have used their best efforts to insure the accuracy and functionality of the textual material and/or programs contained in this package; we, however, make no warranty of any kind, express or implied, regarding the performance of these contents or programs. The Work is sold"as is"without warranty(except for defective materials used in manufacturing the book or due to faulty workmanship) The author, developers, and the publisher of any accompanying content, and anyone involved in the composition, production, and manufacturing of this work will not be liable for damages of any kind arising out of the use of (or the inability to use) the algorithms, source code, computer programs, or textua material contained in this publication. This includes, but is not limited to, loss of revenue or profit, or other incidental, physical, or consequential damages arising out of the use of this work The sole remedy in the event of a claim of any kind is expressly limited to replacement of the book and disc and only at the discretion of the Publisher. The use of“ implied warranty” and certain“ exclusions” vary from state to state,and might not apply to the purchaser of this product Companion files are available for download from the publisher by writing to info( @merclearning com COMPUTER GRAPHICS PROGRAMMING IN OPENGL WITH JAVA SECOND EDITION V. Scott gordon, phD California State University, Sacramento John Clevenger PhD California State University, Sacramento MERCURY LEARNING AND INFORMATION Dulles, virginia Boston. massachusetts New delhi Copyright @2019 by MERCURY LEARNING AND INFORMATION LLC. All rights reserved This publication, portions of it, or any accompanying software may not be reproduced in any way, stored in a retrieval system of any type, or transmitted by any means, media, electronic display or mechanical display, including, but not limited to, photocopy, recording, Internet postings, or scanning, without prior permission in writing from the publisher. Publisher: david pallan MERCURY LEARNING AND INFORMATION 22841 Quicksilver drive Dulles. VA 20166 (800)232-0223 V. Scott gordon John clevenger Computer graphics Programming in Opengl with Java, Second edition ISBN:978-1-683922-193 The publisher recognizes and respects all marks used by companies, manufacturers, and developers as a means to distinguish their products. All brand names and product names mentioned in this book are trademarks or service marks of their respective companies. Any omission or misuse(of any kind)of service marks or trademarks, etc is not an attempt to infringe on the property of others Library of Congress Control Number: 2018949984 181920321 Printed on acid-free paper in the United States of america Our titles are available for adoption, license, or bulk purchase by institutions, corporations, etc. For additional information, please contact the Customer Service Dept at 800-232-0223(toll free). Digital versionsofourtitlesareavailableat:www.authorcloudware.comandothere-vendors.Allcompanionfiles The sole obligation of MERCURY LEARNING AND INFORMATION to the purchaser is to replace the book and/or disc, based on defective matcrials or faulty workmanship, but not based on the opcration or functionality of the product Contents Preface What 's New in this edition Intended audience How to use this book Acknowledgments About the authors Chapter 1 Getting Started 1.1 Languages and libraries 1.1.1 Jaya 1.2 OpenGL/ GLSL 1.1.3 JOGL 1.1.4 JOML 1.2 Installation and Configuration Chapter 2 The Open GL Graphics Pipeline 2. 1 The OpenGL Pipeline 2.1.1 Java/JOGL Application 2.1.2 Vertex and Fragment Shaders 2.1.3 Tessellation 2.1.4 Geometry Shader 2.1.5 Rasterization 2.1.6 Fragment Shader 2.1.7 Pixel Operations 2.2 Detecting OpenGL and glsL errors 2.3 Reading glsl Source Code from Files 2.4 Building objects from Vertices 2.5 Animating a Scene 2.6 Organizing the Java Code Files Chapter 3 mathematical Foundations 3. 1 3D Coordinate Systems 3.2 Points 3.3 Matrices 3.4 Transformation matrices 3.4.1 Translation 3.4.2 Scaling 3.4.3 Rotation 3.5 Vectors 3.5.1 Uses for dot product 3.5.2 Uses for Cross product 3.6 Local and world space 3.7 Eye Space and the Synthetic Camera 3.8 Projection Matrices 3.8.1 The Perspective Projection Matrix 3.8.2 The Orthographic Projection Matrix 3.9 Look -At matrix 3.10 GLSL Functions for Building Matrix Transforms Chapter 4 Managing 3D Graphics Data 4.1 Buffers and vertex attributes 4.2 Uniform variables 4.3 Interpolation of Vertex Attributes 4.4 Model-View and Perspective Matrices 4.5 Our First 3D Program-A 3D Cube 4.6 Rendering Multiple Copies of an Object 4.6.1 Instancing 4.7 Rendering multiple different Models in a Scene 4.8 Matrix Stacks 4.9 Combating“ Z-Fighting” Artifacts 4.10 Other Options for Primitives 4.11 Coding for Performance 4.11.1 Minimizing Dynamic memory allocation 4.11.2 Pre-Computing the Perspective Matrix 4.11.3 Back-Face Culling Chapter 5 Texture Mapping 5.1 Loading texture Image files 5.2 Texture Coordinates 5.3 Creating a Texture object 5.4 Constructing Texture Coordinates 5.5 Loading Texture Coordinates into Buffers 5.6 USing the Texture in a Shader: Sampler variables and Texture Units 5.7 Texture Mapping: Example Program 5.8 Mipmapping 5.9 Anisotropic Filtering 5. 10 Wrapping and Tiling 5.11 Perspective Distortion 5.12 Loading Texture Image Files Using Java AWT Classes Chapter 6 3D Models 6. 1 Procedural Models-Building a Sphere 6.2 OpenGL Indexing-Building a Torus 6.2.1 The torus 6.2.2 Indexing in OpengL 6. 3 Loading Externally Produced Models Chapter 7 Lighting 7.1 Lighting Models 7.2 Lights 73 Materials 7.4 ADS Lighting computations 7.5 Implementing ADS Lighting 7.5.1 Gouraud Shading 7.5.2 Phong Shading 7.6 Combining Lighting and Textures Chapter 8 Shadows 8.1 The Importance of Shadows 8.2 Projective Shadows 8.3 Shadowⅴ olumes 8. 4 Shadow Mapping 8.4.1 Shadow Mapping (Pass One)"Draw"Objects from Light Position 8.4.2 Shadow Mapping (Intermediate Step)Copying the Z-Buffer to a texture 8.4.3 Shadow Mapping(Pass Two)Rendering the Scene with Shadows 8.5 A Shadow Mapping Example 8.6 Shadow Mapping Artifacts 8. 7 Soft shadows 8.7.1 Soft shadows in the real world 8.7.2 Generating Soft Shadows-Percentage Closer Filtering(PCF) 8.7.3 A Soft Shadow/PCF Program Chapter 9 Sky and Backgrounds 9.1 Skyboxes 9.2 Skydomes 9.3 Implementing a Skybox 9.3.1 Building a Skybox from Scratch 9.3.2 Using Opengl Cube maps 9. 4 Environment Mapping Chapter 10 Enhancing Surface Detail 10.1 Bump Mapping

试读 127P Computer Graphics Programming in OpenGL with Java 2nd Edition
立即下载 身份认证后 购VIP低至7折
guoheidan 差评,不是原版pdf
  • 签到新秀

  • 分享王者

关注 私信
Computer Graphics Programming in OpenGL with Java 2nd Edition 9积分/C币 立即下载
Computer Graphics Programming in OpenGL with Java 2nd Edition第1页
Computer Graphics Programming in OpenGL with Java 2nd Edition第2页
Computer Graphics Programming in OpenGL with Java 2nd Edition第3页
Computer Graphics Programming in OpenGL with Java 2nd Edition第4页
Computer Graphics Programming in OpenGL with Java 2nd Edition第5页
Computer Graphics Programming in OpenGL with Java 2nd Edition第6页
Computer Graphics Programming in OpenGL with Java 2nd Edition第7页
Computer Graphics Programming in OpenGL with Java 2nd Edition第8页
Computer Graphics Programming in OpenGL with Java 2nd Edition第9页
Computer Graphics Programming in OpenGL with Java 2nd Edition第10页
Computer Graphics Programming in OpenGL with Java 2nd Edition第11页
Computer Graphics Programming in OpenGL with Java 2nd Edition第12页
Computer Graphics Programming in OpenGL with Java 2nd Edition第13页
Computer Graphics Programming in OpenGL with Java 2nd Edition第14页
Computer Graphics Programming in OpenGL with Java 2nd Edition第15页
Computer Graphics Programming in OpenGL with Java 2nd Edition第16页
Computer Graphics Programming in OpenGL with Java 2nd Edition第17页
Computer Graphics Programming in OpenGL with Java 2nd Edition第18页
Computer Graphics Programming in OpenGL with Java 2nd Edition第19页
Computer Graphics Programming in OpenGL with Java 2nd Edition第20页

试读结束, 可继续阅读

9积分/C币 立即下载