Free Downloads

Create stunning 3D graphics in your browser using the Three.js JavaScript library About This BookEnhance your 3D graphics with light sources, shadows, advanced materials, and texturesLoad models from external sources, and visualize and animate them directly from JavaScriptEach subject is explained using extensive examples that you can use directly and adapt for your own purposesWho This Book Is ForIf you know JavaScript and want to start creating 3D graphics that run in any browser, this book is a great choice for you. You don't need to know anything about math or WebGL; all that you need is general knowledge of JavaScript and HTML.What You Will Learn Use the different geometries that are provided by Three.js Apply realistic lighting and shadows to the 3D objects you have created Use the different camera controls provided by Three.js to effortlessly navigate around your 3D scene Make use of advanced textures on materials to create realistic-looking 3D objects by using bump maps, normal maps, specular maps, and light maps Import and animate models from external formats, such as OBJ, STL, Collada, and many more Create and run animations using morph targets and bone animations Explore the Physijs JavaScript library to apply physics to your 3D objects Interact directly with WebGL by creating custom vertex and fragment shaders In DetailModern browsers support WebGL, which makes it possible to create 3D graphics in a browser without having to use plugins such as Flash and Java. Programming WebGL, however, is difficult, complex, and very difficult to debug. With Three.js, it is possible to create stunning 3D graphics in an intuitive manner using JavaScript, without the need to know the details of WebGL.Learning Three.js – the JavaScript 3D Library for WebGL, Second Edition, is a practical, example-rich book that will help you learn about all the features of Three.js. This book will show you how to create or load models from externally created models and realistic-looking 3D objects using materials and textures. You'll also learn how to use the HTML5 video and canvas elements as a material for your 3D objects, different ways of animating your models, skeleton-based animation, and how to add physics such as gravity and collision detection to your scene. By the end of the book, you'll know everything that is required to create 3D animated graphics that run in any browser using Three.js.

Learning Three.js - the JavaScript 3D Library for WebGL, second edition is a good introduction to creating web-based 3D applications using the three.js library. The book assumes basic programming knowledge and some experience with using other CAD or 3D scene composition software, but nothing conceptually complex. While it is possible to just "jump in" sans book using the example code at threejs.org, the author takes the reader through the details needed to get started from ground zero. Rather than just assume everyone uses Chrome on a desktop, the author first shows how to do the basic but vital task of enabling WebGL on some of the older (but not uncommon) browsers. This seemingly trivial task had eluded me the better part of an afternoon with an older version of Firefox and of Safari; his instructions made the task as easy as it should have been.The examples (with downloadable source code) presented in chapters 1-3 follow a logical progression, starting with wireframe rendering of a sphere and cube, then gradually adding more effects and capabilities. This logical evolution (with working example code) made it much easier for me to pick up the basics of three.js application design than just studying the (albeit wonderful) examples at threejs.org. (Although once I had a better handle on how to use three.js, I found studying the threejs.org examples extremely helpful too.)Chapter 4 introduces custom materials with different surface characteristics, and Chapter 5 gives examples of predefined geometries (obviating the need for creating large detailed triangle mesh models if a pre-defined geometry can suffice). Chapter 6 extends the CAD model further with 2D extrusions and 3D text.