이미지 검색을 사용해 보세요
검색창 이전화면 이전화면
최근 검색어
인기 검색어

소득공제 수입
직수입양서 Professional WebGL Programming
Developing 3D Graphics for the Web Paperback, 1st Edition
Anyuru, Andreas
Wrox 2012.04.30.
가격
80,980
18 66,400
YES포인트?
3,320원 (5%) 마니아추가적립
5만원 이상 구매 시 2천원 추가 적립
결제혜택
최대 2,000원 즉시할인
배송안내
서울특별시 영등포구 은행로 11(여의도동, 일신빌딩) 변경
배송비?
무료

이미 소장하고 있다면 판매해 보세요.

이 분야의 이벤트

책소개

목차

Introduction xxl



CHAPTER 1: INTRODUCING WEBGL 1

The Basics of WebGL 1

So Why Is WebGL So Great? 2

Designing a Graphics API 3

An Immediate-Mode API 3

A Retained-Mode API 4

An Overview of Graphics Hardware 4

GPU 5

FrameBuffer 5

Texture Memory 7

Video Controller 7

Understanding the WebGL Graphics Pipeline 7

Vertex Shader 8

Primitive Assembly 12

Rasterization 14

Fragment Shader 14

Per Fragment Operations 17

Comparing WebGL to Other Graphics Technologies 19

OpenGL 19

OpenGL ES
2.0 21

Direct3D 23

HTML5 Canvas 24

Scalable Vector Graphics 28

VRML and X3D 30

Linear Algebra for 3D Graphics 31

Coordinate System 31

Points or Vertices 31

Vectors 32

Dot Product or Scalar Product 33

Cross Product 34

Homogeneous Coordinates 35

Matrices 35

Affine Transformations 38

Summary 44

CHAPTER 2: CREATING BASIC WEBGL EXAMPLES 45

Drawing a Triangle 46

Creating the WebGL Context 49

Creating the Vertex Shader and the Fragment Shader 51

Compiling the Shaders 52

Creating the Program Object and Linking the Shaders 53

Setting Up the Buffers 54

Drawing the Scene 56

Understanding the WebGL Coding Style 57

Debugging Your WebGL Application 58

Using Chrome Developer Tools 58

Using Firebug 65

WebGL Error Handling and Error Codes 67

WebGL Inspector 70

Troubleshooting WebGL 76

Using the DOM API to Load Your Shaders 78

Putting It Together in a Slightly More Advanced Example 80

Experimenting with Code 83

Summary 84

CHAPTER 3: DRAWING 85

WebGL Drawing Primitives and Drawing Methods 86

Primitives 86

Understanding the Importance of Winding Order 91

WebGL’s Drawing Methods 93

Typed Arrays 99

Buffer and View 100

Supported View Types 101

Exploring Different Ways to Draw 102

gl.drawArrays() and gl.TRIANGLES 103

gl.drawArrays() and gl.TRIANGLE_STRIP 105

gl.drawElements() and gl.TRIANGLES 106

gl.drawElements() and gl.TRIANGLE_STRIP 108

Conclusions of the Comparison 111

Pre-Transform Vertex Cache and Post-Transform Vertex Cache 111

Interleaving Your Vertex Data for Improved Performance 114

Using an Array of Structures 115

Using a Vertex Array or Constant Vertex Data 123

A Last Example to Wind Things Up 124

Some Things to Experiment With 134

Summary 134

CHAPTER 4: COMPACT JAVASCRIPT LIBRARIES AND TRANSFORMATIONS 137

Working with Matrices and Vectors in JavaScript 138

Sylvester 139

WebGL-mjs 142

glMatrix 146

Using Transformations 150

How Transformations Are Used 150

Understanding the Complete Transformation Pipeline 157

Getting Practical with Transformations 158

Setting Up Buffers with Object Coordinates 159

Creating Transformation Matrices with JavaScript and Uploading Them to the Shader 160

Uploading the Transformation Matrices to the Vertex Shader in the GPU 161

Calling Your Drawing Methods 162

Understanding the Importance of Transformation Order 162

Using a Grand, Fixed Coordinate System 163

Using a Moving, Local Coordinate System 165

Pushing and Popping Transformation Matrices 167

A Complete Example: Drawing Several Transformed Objects 171

Creating a Cube with WebGL 173

Organization of the View Transformation and the Model Transformation 175

Summary 176

CHAPTER 5: TEXTURING 177

Understanding Lost Context 178

Understanding the Setup Required to Handle Lost Context 179

Factors to Consider When Handling Lost Context 181

Introducing 2D Textures and Cubemap Textures 183

Loading Your Textures 185

Creating a WebGLTexture Object 185

Binding Your Texture 185

Loading the Image Data 186

Uploading the Texture to the GPU 187

Specifying Texture Parameters 189

Understanding the Complete Procedure of Loading a Texture 190

Defi ning Your Texture Coordinates 193

Using Your Textures in Shaders 195

Working with Texture Image Units 197

Working with Texture Filtering 198

Understanding Magnifi cation 199

Understanding Minifi cation 200

Understanding Mipmapping 200

Understanding Texture Coordinate Wrapping 203

Using the gl.REPEAT Wrap Mode 203

Using the gl.MIRRORED_REPEAT Wrap Mode 205

Using the gl.CLAMP_TO_EDGE Wrap Mode 206

A Complete Texture Example 207

Using Images for Your Textures 210

Downloading Free Textures 210

Basing Textures on Your Own Photos 211

Drawing Images 211

Buying Textures 211

Understanding Same-Origin Policy and Cross-Origin Resource Sharing 212

Understanding Same-Origin Policy for Images in General 212

Understanding Same-Origin Policy for Textures 214

Understanding Cross-Origin Resource Sharing 215

Summary 217

CHAPTER 6: ANIMATIONS AND USER INPUT 219

Animating the Scene 219

Using setInterval() and setTimeout() 221

Using requestAnimationFrame() 222

Compensating Movement for Different Frame Rates 225

Creating an FPS Counter to Measure the Smoothness of Your Animation 226

Understanding the Disadvantages of Using FPS as a Measurement 228

Event Handling for User Interaction 230

Basic Event Handling with DOM Level 0 231

Advanced Event Handling with DOM Level 2 232

Key Input 234

Mouse Input 239

Applying Your New Knowledge 240

Summary 246

CHAPTER 7: LIGHTING 249

Understanding Light 249

Working with a Local Lighting Model 250

Understanding the Phong Reflection Model 251

Ambient Reflection 252

Diff use Reflection 253

Specular Reflection 255

Understanding the Complete Equation and Shaders for the Phong Reflection Model 259

Using Lighting with Texturing 263

Understanding the JavaScript Code Needed for WebGL Lighting 267

Setting Up Buffers with Vertex Normals 268

Calculating and Uploading the Normal Matrix to the Shader 270

Uploading the Light Information to the Shader 270

Using Different Interpolation Techniques for Shading 271

Flat Shading 272

Gouraud Shading 273

Phong Shading 274

Understanding the Vectors That Must Be Normalized 278

Normalization in the Vertex Shader 278

Normalization in the Fragment Shader 279

Using Different Types of Lights 279

Directional Lights 280

Point Lights 280

Spot Lights 281

Understanding the Attenuation of Light 284

Understanding Light Mapping 288

Summary 289

CHAPTER 8: WEBGL PERFORMANCE OPTIMIZATIONS 291

WebGL under the Hood 292

Hardware that Powers WebGL 292

Key Software Components 294

WebGL Performance Optimizations 296

Avoiding a Typical Beginner’s Mistake 296

Locating the Bottleneck 298

General Performance Advice 302

Performance Advice for CPU-Limited WebGL 305

Performance Advice for Vertex-Limited WebGL 307

Performance Advice for Pixel-Limited WebGL 308

A Closer Look at Blending 310

Introducing Blending 310

Setting the Blending Functions 311

Understanding Drawing Order and the Depth Buffer 314

Drawing a Scene with Both Opaque and Semi-Transparent Objects 315

Changing the Default Operator for the Blend Equation 315

Using Premultiplied Alpha 316

Taking WebGL Further 317

Using WebGL Frameworks 317

Publishing to the Google Chrome Web Store 318

Using Additional Resources 318

Summary 319

Index 321

?

저자 소개

Andreas Anyuru is a Senior Member of Technical Staff at ST-Ericsson, specializing in Web Technologies. He is experienced in developing web graphics and has worked with implementation and optimization of WebGL and many other web technologies for Linux-based mobile platforms.

Wrox Professional guides are written by working developers to address everyday needs. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.

품목정보

발행일
2012년 04월 30일
쪽수, 무게, 크기
360쪽 | 188*236*18mm
ISBN13
9781119968863

리뷰/한줄평0

리뷰

첫번째 리뷰어가 되어주세요.

한줄평

첫번째 한줄평을 남겨주세요.

상품정보안내

직수입외서의 경우, 해외거래처에서 제공하는 정보가 부족하여 제목, 표지, 가격, 유통상태 등의 정보가 미비하거나 변경되는 경우가 있습니다. 정확한 확인을 원하시는 경우, 일대일 상담으로 문의하여 주시면 답변 드리겠습니다.
(판형과 판수 등이 다양한 도서는 찾으시는 도서의 ISBN을 알려 주시면 보다 빠르고 정확한 안내가 가능합니다.)

해외거래처에서 품절인 경우, 2차 거래선을 통해 유럽과 미국 출판사로 직접 수입이 진행될 수 있습니다.
수입 진행 시점으로 부터 2~3주가 추가로 소요되며, 해외에서도 유통이 원활하지 않은 도서는 품절 안내가 지연될 수 있습니다.
해당 경우, 문자와 메일로 별도 안내를 드리고 있사오니 마이페이지에서 휴대전화번호와 메일주소를 다시 한번 확인해주시기 바랍니다.
66,400
1 66,400