3D编程:第四章 Hello,Shaders

第四章 Hello,Shaders

本章,会编写第一个shaders。介绍HLSL语法,FX文件格式,数据结构等等。学完本章,你就具备了深入学习图形编程的基础知识。

Your First Shader

使用一种新的编程语言编写第一个程序时都会使用经典的编程例子“Hello,World!”,程序输出就是一行文字“Hello,World!”。我们遵守这一历史悠久的传统,编写第一个shader程序“Hello,Shaders!”,但是这次的输出是一种固定的颜色渲染到一个object上。

首先,启动NVIDIA FX Composer并创建一个新的工程。打开Assets panel,在Materials图标上点击鼠标右键,并选择Add Material from New Effect菜单项。然后在Add Effect对话框中选择HLSL FX,并点击Next进入下一步。

图4.1 NVIDIA FX Composer Add Effect dialog box

在一个对话框中,选择空模板,并命名为HelloShader.fx(如图4.2)。

图4.2 NVIDIA FX Composer Select HLSL FX Template dialog box.

时间: 2024-12-31 02:40:23

3D编程:第四章 Hello,Shaders的相关文章

3D编程:第一章 Introducing DirectX

DirectX是一组API的集合,用于在微软平台上,包括Windows,Windows Phone,Xbox 360,以及Xbox One,开发游戏或图形相关的应用程序.DirectX从1990年代中期发展至今,并处于现在图形开发的前沿.Direct3D是DirectX里面一套3D图形API,是这本书主要讲述的.DirectX也包含了2D图形,输入,音频,文字渲染和GPU编程的系统支持.本章概述了DirectX和DirectX 11的图形管线. 回顾历史 DirectX 1.0版本发布于1995

3D编程:第九章 Normal Mapping and Displacement Mapping

第九章 Normal Mapping and Displacement Mapping 本章主要讲述两种图形学技术,支持在不增加objects的poly primitive的情况下,在场景中增加更多的细节.第一种是normal mapping,通过创建一些"fake" geometry(虚设的多边形图元)模拟光照作用.第二种是displacement mapping,根据纹理数据moving vertices actually(与"fake"相对应,这里指真实的移动

3D编程:第二章 A 3D/Math Primer

ab=(ax *bx)+(ay *by)+(az *bz) 这产生一个标量值,因些dot product也称为scalar product(或者inner product).根据向量长度的定义,可以使用向量与其自身的点积的平方根来计算向量的长度. 在几何数学中,点积表示了两个向量之间的角度.公式为: a b = ||a||*||b|| * cos(θ) θ即为向量a和b的夹角.如果向量a和b都已经标准化,点积可以简化为: a b = cos(θ) 根据这个公式,可以总结如下几点: 如果a b  

《.net编程先锋C#》第四章 C#类型(转)

编程 第四章 C#类型 既然你知道了怎样创建一个简单的C#程序,我将会给你介绍C#的类型系统.在这一章中,你学到如何使用不同的值和引用类型,加框和消框机制能为你作些什么.尽管这一章的不侧重于例子,但你可以学到很多重要的信息,关于如何创建现成类型的程序.4.1 值类型 各种值类型总是含有相应该类型的一个值.C#迫使你初始化变量才能使用它们进行计算-变量没有初始化不会出问题,因为当你企图使用它们时,编译器会告诉你. 每当把一个值赋给一个值类型时,该值实际上被拷贝了.相比,对于引用类型,仅是引用被拷贝

3D编程:第六章 Lighting Models

第六章 Lighting Models 在现实世界中,没有光照是无法看见东西的:一个物体能被看见,要么是通过反射光源,要么是自身发光.在使用计算机渲染时,模拟光线的交互可以使3D objects更逼真.但是光照的交互是一个非常复杂的过程,不能简单的在各种交叉的帧率之间进行复制(至少目前阶段还不行).因此,使用光照与3D objects交互的近似值或光照模型,在场景中实现更多的细节.本章主要介绍一些基础的光照模型. Ambient Lighting(环境光) 在一个光照环境中,环境光看起来远处不在

《OpenGL超级宝典(第5版)》——第1章,第1.4节3D编程的基本原则

1.4 3D编程的基本原则 现在,我们对实时3D的基本概念已经有了相当程度的认识.我们讨论了一些术语以及PC上的一些示例应用程序.那么,如何在自己的计算机上创建这样的图像呢?好吧,这正是本书剩余部分的任务所在.不过,读者还需要知道一些基础知识,这正是我们接下来将要讨论的. 1.4.1 并非工具包 OpenGL基本上是一种底层渲染API(应用程序接口).我们不能告诉它"在什么地方绘制什么"--我们需要自己动手,通过载入三角形,应用必要的变换和正确的纹理.着色器并在必要时应用混合模式来组合

《PHP程序设计》 第四章 程序控制

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  第四章 程序控制      本章深入PHP内部,讲述如何使用函数.表达式和语句以实现对程序的控制.      前面的章节初步介绍了怎样操作数据,如果我们将操作数和操作符看作是构筑元件的话,那么它们组合起来即可形成表达式.进一步讲,表达式可以构成语句,语句用于组成函数,而函数则可用来组成程序.      提示:在学习有关编

&amp;gt;第四章 C#类型(rainbow 翻译)(来自重粒子空间)

<<展现C#>>第四章 C#类型(rainbow 翻译)   出处:http://www.informit.com\matter\ser0000002\chapter4\ch04_04.shtml 正文: 第四章  C#类型     既然你知道了怎样创建一个简单的C#程序,我将会给你介绍C#的类型系统.在这一章中,你学到如何使用不同的值和引用类型,加框和消框机制能为你作些什么.尽管这一章的不侧重于例子,但你可以学到很多重要的信息,关于如何创建现成类型的程序.4.1 值类型     

Knockout应用开发指南 第四章:模板绑定

原文:Knockout应用开发指南 第四章:模板绑定 模板绑定The template binding 目的 template绑定通过模板将数据render到页面.模板绑定对于构建嵌套结构的页面非常方便.默认情况, Knockout用的是流行的jquery.tmpl模板引擎.使用它的话,需要在安装页面下载和引用jquery.tmpl和jQuery框架.或者你也可以集成其它的模板引擎(虽然需要了解Knockout 内部知识才行).   例子 <div data-bind='template: &quo