Muutke küpsiste eelistusi
  • Formaat - PDF+DRM
  • Hind: 57,19 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: 308 pages
  • Ilmumisaeg: 01-Dec-2009
  • Kirjastus: A K Peters
  • Keel: eng
  • ISBN-13: 9781000730692

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

In a tutorial and guide to the technology behind Sh, McCool and Du Toit (computer science, U. of Waterloo, Ontario, Canada) introduce Sh as a new open-source language for simplifying shader programming and a C++ toolkit for (meta-)programming graphics processing units and CPUs. (Meta-programming refers to the ability of one program to build another.) Explaining Sh to those familiar with high-level shading languages, they cover Sh conventions, basic and advanced techniques, engineering, and future directions. The volume includes many b&w and color examples of Sh-generated images, and 152 references. Annotation ©2004 Book News, Inc., Portland, OR (booknews.com)

Shading, as part of the creation of realistic computer-generated images, is currently bringing major advances to computer graphics, with important practical applications in computer game design and animation. Shaders are a more sophisticated way of making 3D objects look more realistic. While most shaders are created using proprietary shading languages, Sh, a new open-source system, simplifies the shader programming process by making it part of the C++ language. This book introduces Sh and describes how to program a GPU using C++ to implement both basic and advanced shading techniques. Readers of this book will be able to start writing advanced, modular shaders using Sh within a day!

Arvustused

" Gamasutra.com features an article this week about Sh, the new shader language, developed by Michael McCool and Stefanus Du Toit. Background information and a user's manual are published in their new book, ""Metaprogramming GPUs with Sh."" -Gamasutra.com, July 2004 Stefanus Du Toit, co-author of Metaprogramming GPUs with Sh is on this year's list of the top science and technology innovators under the age of 35. -MIT Technology Review , August 2008"

List of Tables xi
List of Listings xv
Preface xvii
I Introduction 1(126)
1 Overview
3(40)
1.1 Programmable CPUs
8(2)
1.2 Shading Languages
10(3)
1.3 Stream Processing
13(3)
1.4 Metaprogramming
16(3)
1.5 The Sh Metaprogramming Toolkit
19(8)
1.5.1 Immediate Mode
20(1)
1.5.2 Stream Programming
20(4)
1.5.3 Shader Programming
24(3)
1.6 Conventions and Notation
27(8)
1.6.1 Typesetting and Stylistic Conventions
27(1)
1.6.2 Coordinate Systems
28(1)
1.6.3 Standard Vectors and Variable Names
29(3)
1.6.4 Global Parameters
32(3)
1.7 License, History, and Access
35(1)
1.8 Status and Future Development
36(7)
1.8.1 Beta Release Features
37(1)
1.8.2 Year-End Features
38(2)
1.8.3 Future Features
40(3)
2 Tuples, Matrices, Operators, and Functions
43(20)
2.1 Tuples
43(1)
2.2 Operators and Library Functions
44(2)
2.3 Matrices
46(1)
2.4 Functions
47(16)
2.4.1 Example: Glass Support Functions
47(3)
2.4.2 Example: Reflectance Models
50(13)
3 Programs, Parameters, and Attributes
63(26)
3.1 Programs
63(1)
3.2 Example: Blinn-Phong Point-Source Lighting
64(8)
3.2.1 Vertex Shader
64(3)
3.2.2 Fragment Shader
67(1)
3.2.3 Modularity
68(3)
3.2.4 Shader Framework
71(1)
3.3 Shader Algebra
72(2)
3.4 Example: Surfaces, Lights, and Postprocessing
74(3)
3.5 Example: Metaprogrammed CSG Text
77(6)
3.6 Control Constructs
83(1)
3.7 Example: Julia Set
84(5)
4 Arrays and Textures
89(30)
4.1 Texture Types
89(2)
4.2 Example: Texture Mapped Blinn-Phong
91(2)
4.3 Example: Encapsulated BRDF Representation
93(3)
4.4 Example: Shiny Bump Map
96(2)
4.4.1 Vertex Shader
97(1)
4.4.2 Fragment Shader
98(1)
4.5 Example: Glass
98(2)
4.6 Example: Lucite
100(2)
4.7 Example: Wood and Marble
102(3)
4.7.1 Parameters
103(1)
4.7.2 Vertex Shader
104(1)
4.7.3 Fragment Shader
104(1)
4.8 Example: Worley Noise Shaders
105(1)
4.9 Example: Wood from Phong
106(13)
5 Streams and Channels
119(8)
5.1 Channels
119(1)
5.2 Combining Channels into Streams
119(1)
5.3 Applying Programs to Streams
120(1)
5.4 Example: Particle Systems
121(6)
II Reference 127(96)
6 Reference Overview
129(8)
6.1 Setup
129(1)
6.2 Sample OpenGL GLUT Application
130(4)
6.3 The shrike Testbed
134(1)
6.4 API Documentation
135(2)
7 Types
137(14)
7.1 Programs
137(1)
7.2 Tuples
138(6)
7.2.1 Semantic Types
138(1)
7.2.2 Storage Types
139(2)
7.2.3 Binding Types
141(1)
7.2.4 Template Declaration
142(2)
7.3 Matrices
144(1)
7.4 Arrays, Tables, and Textures
145(1)
7.5 Contexts
146(1)
7.6 Exceptions and Error Handling
146(1)
7.7 Metadata
146(5)
7.7.1 Object Names
148(3)
8 Standard Operators and Functions
151(26)
8.1 Swizzling and Write Masking
153(3)
8.2 Arithmetic
156(3)
8.3 Derivatives
159(2)
8.4 Noise
161(2)
8.5 Trigonometric and Exponential Functions
163(2)
8.6 Interpolation and Approximation
165(1)
8.7 Geometry
166(1)
8.8 Linear Algebra
167(4)
8.9 Logical and Comparison Functions
171(2)
8.10 Discontinuities
173(1)
8.11 Miscellaneous Functions
173(4)
9 Arrays, Tables and Textures
177(6)
9.1 Texture Formats
178(2)
9.2 Trait Modifiers
180(1)
9.3 Texture Memory and Storage
180(1)
9.4 Texture and Array Access
181(2)
10 Programs and Streams
183(1)
10.1 Defining Programs
183(2)
10.1.1 Compiling Programs
184(1)
10.2 Binding Programs and Data
185(2)
10.2.1 Binding Programs
185(1)
10.2.2 Binding and Updating Data
186(1)
10.2.3 Unbinding
186(1)
10.2.4 Querying Binding State
186(1)
10.3 Introspection
187(2)
10.4 Algebra
189(2)
10.4.1 Connection
190(1)
10.4.2 Combination
190(1)
10.5 Nibbles
191(5)
10.5.1 Interface Adaptation and Specialization
191(1)
10.5.2 Passthrough
192(1)
10.5.3 Texture Access
193(1)
10.5.4 Type and Size Conversion
193(1)
10.5.5 Transformations
194(1)
10.5.6 Basis Conversion
194(1)
10.5.7 Primitive Computations
195(1)
10.6 Manipulators
196(2)
10.6.1 Fixed Manipulators
197(1)
10.6.2 Expandable Manipulators
197(1)
10.7 Kernels
198(8)
10.7.1 Universal Vertex Shader Kernel
199(2)
10.7.2 Surface Shader Kernels
201(2)
10.7.3 Light Shader Kernels
203(2)
10.7.4 Surface Map Kernels
205(1)
10.7.5 Postprocessing Kernels
206(1)
10.8 Streams
206(3)
11 Control Constructs
209(1)
11.1 Selection
210(2)
11.1.1 IF
211(1)
11.1.2 WHEN
212(1)
11.2 Iteration
212(6)
11.2.1 FOR
213(1)
11.2.2 WHILE
214(1)
11.2.3 DO/UNTIL
214(1)
11.2.4 BREAK/CONTINUE
214(3)
12 Backends
217(1)
12.1 OpenGL Backends
218(2)
12.1.1 Input and Output Binding
218(1)
12.1.2 Texture Bindings
219(1)
12.1.3 Parameter Bindings
220(1)
12.2 CPU Backends
220(1)
12.3 The Sm Backend
221(2)
III Engineering 223(1)
13 Engineering Overview
225(46)
13.1 Code Organization and Build System
226(1)
13.2 Template Instantiation
227(2)
14 Intermediate Representation
229(1)
14.1 Reference Counting
229(1)
14.2 Basic Blocks
230(5)
14.2.1 Special Statements
234(1)
14.3 The Control-Flow Graph
235(1)
14.4 Parsing
236(5)
14.4.1 Basic Blocks
236(1)
14.4.2 Control Constructs
237(4)
15 Streams and Textures
241(1)
15.1 Stream Representation
241(1)
15.2 Texture Representation
242(1)
15.3 Stream and Texture Memory
242(3)
15.3.1 Memory and Storage Objects
242(2)
15.3.2 Finding Storages
244(1)
15.3.3 Transfer Operators
244(1)
15.3.4 Existing Implementations
244(1)
15.4 Future Work
245(4)
15.4.1 Stream Interface Improvements
245(1)
15.4.2 Index Streams
246(1)
15.4.3 Reductions
246(1)
15.4.4 Stream Ordering
246(1)
15.4.5 Memory Abstraction Improvements
247(2)
16 Optimization
249(3)
16.1 Copy Propagation and Forward Substitution
249(2)
16.2 Dead Code Removal
251(2)
16.2.1 Block Predecessors
252(1)
16.2.2 Reaching Definitions
252(1)
16.2.3 Use-Def Chains
252(1)
16.2.4 Live and Dead Code
253(1)
16.3 Graph Straightening
253(1)
16.4 Future Work
254(7)
16.4.1 Eliminating Redundancies
254(1)
16.4.2 Constant Folding and Uniform Lifting
255(1)
16.4.3 Algebraic Simplification
256(1)
16.4.4 Conditional Assignment
257(1)
16.4.5 Static Single Assignment and Other Forms
257(4)
17 Backend
261(3)
17.1 The Backend Interface
261(2)
17.2 Linear Register Allocation
263(1)
17.3 Transformers
263(3)
17.3.1 Splitting Long Tuples
264(1)
17.3.2 Input and Output Conversion
265(1)
17.3.3 Texture Indexing Conversion
266(1)
17.4 Future Work
266(5)
17.4.1 New Backends
266(1)
17.4.2 Better Transformations
267(1)
17.4.3 Better Reuse
267(1)
17.4.4 Instruction Count Virtualization
268(1)
17.4.5 Data-Dependent Control Flow Virtualization
268(3)
Bibliography 271(14)
Index 285
McCool , Michael