您正在浏览:主页 > 仿盛大热血传奇 >
VR世界的新动1.76网页版传奇力—NVIDIA Cg编程语言
作者:热血传奇网页版 来源:http://www.softpl.com 时间:2016-05-04 04:47
关于Cg(c for graphic)编程语言的信息
2002年6月13日,北京—图形处理解决方案领域的全球领袖NVIDIA®公司(Nasdaq代码: NVDA)今日宣布推出面向新业界标准Cg图形编程语言的NVIDIA Cg编译器。同样也是今天宣布推出的Cg语言(C for Graphics)是一种高级图形编程语言,可为内容开发商提供一个全面的编程环境,使其更轻松、快捷地创建特殊效果和实时电影效果。NVIDIA Cg编译器是一种突破性的技术,可生成用于创建引人注目的实时视觉效果的优化图形汇编程序。 “我们正在进入一个图形软件开发的新世界,”In-Stat MDR公司《Microprocessor Report》主编Peter Glaskowsky说道,“Cg的发布标志着计算机图形业的一次革命—这是多年来第一次我们可以毫不夸张地这样说。” NVIDIA Cg编译器是NVIDIA Cg编程环境的核心。面向标准DirectX8或DirectX 9兼容图形芯片(GPU)编写的程序可进行编译并可运行在任何兼容硬件上。所形成的程序是一种高效的顶点或象素渲染引擎,其性能水平相当于或优于手工编码 图形程序。NVIDIA的Cg编译器的设计目的是为了充分利用NVIDIA GPU的功能和通道,确保最优性能和视觉质量。此外,NVIDIA的Cg编译器还可独具特色地支持OpenGL。面向OpenGL平台编写的Cg渲染引 擎被编译和优化,以充分利用NVIDIA GPU里的扩展图形功能。NVIDIA的Cg编译器还是一种交叉平台,可支持面向Windows、OS X、Linux、Mac和Xbox编写的程序。 NVIDIA的Cg编译器的最强大功能是其前向和后向兼容性。NVIDIA Cg编译器借用NVIDIA著名的统一驱动架构(UDA),并最终采用了统一编译架构(UCA)。程序一旦编写完毕,将可运行在老一代或新一代Cg兼容 GPU上,并可在系统GPU运行时间里进行自动优化。这种独特的功能可使开发商无须承担GPU优化的重担。 “通过承担为当今GPU优化特殊效果的艰苦工作,Cg将使开发人员的生活变得更为轻松,”NVIDIA营销部副总裁Dan Vivoli说道,“因为我们利用Cg编译器进行许多工作,因此开发人员可将更多的时间放在游戏开发创意上。这开始了一个新的演绎传奇的时代。” NVIDIA Cg工具套件Beta 1.0版将包括: NVIDIA Cg编译器Beta 1.0—对GPU上渲染引擎进行编程的类C语言 NVIDIA Cg浏览器—带有大型Cg渲染引擎库的原型设计/可视化环境 Cg标准库—一套专门帮助熟悉一般计算机应用的编程人员的内嵌功能 Cg渲染引擎—供使用和学习的一套预编写范例 如欲了解更多有关NVIDIA Cg解决方案的信息,请访问NVIDIA网站:?IO=cg。有兴趣了解NVIDIA Cg编译器更多信息的开发商可访问:。如欲了解有关Cg和渲染的团体观点,请访问 。如欲了解开发商和其他人针对Cg的评论,请访问?IO-cg testimonials。 ------------------------------------------------------ Cg编程入门编(OpenGL)(1) 类型:转贴 | 来源:整理| 时间: 2006-07-07 Cg ,你好!------Cg编程入门编(OpenGL) 原注:B Alex D'Angelo (alexz@FusionIndustries.com) 译: 川流不息 (huawenguang@hotmail.com)未经本人同意,不能用于商业用途。 本文将介绍如何在你现有的图形程序中加入对顶点和片段的高级着色。采用CG着色语言,热血传奇单机版,将会另你的工作更加容易实现。在编程过程中,你可以通过调用一些已有 的CG函数来完成你的工作。当然,当你学得足够深入后,你也可以自已编写一些着色器。最具有参考价值的资料,当然要数Fernando 和 Kilgard 编写的“The Cg Tutorial”了。在Nvidia公司的网页中可以下载到。 一、概述 本文的程序中,结合OpenGL和GLUT在屏幂中画了一个立方体,程序中加入了CG着色程序代码。Listing1中包含了完整的原程序代码,其中CG部分用粗体字标识出来,本程序贯穿全文。Listing2是一个CG顶点着色的代码。 二、建立Cg编程环境 在进行CG编程之前,首先要下载CG工具包“Cg Toolkit”,在以下网址可以找到:
,请注意看一下你的显卡是否支持顶点着色编程。 安装CG工具包,为了能让它在Visual C++ 中工作,你可用以下两种方法之一。第一种:把CG头文件和库文件中的内容,分别拷贝到Visual C++的头文件和库文件的文件夹中。 From: C:\Program Files\NVIDIA Corporation\Cg\libTo: C:\Program Files\Microsoft Visual Studio\VC98\Lib From: C:\Program Files\NVIDIA Corporation\Cg\includeTo: C:\Program Files\Microsoft Visual Studio\VC98\Include 第二种方法就是在VC编译器中增加一个搜索路径:Tools ->Options -> projects ->"directiress" 我们的程序中虽要连接“cg.lib”“cgGL.lib”这两个库文件,你可以把它写到连接路径中去:“properties ->Linker -> Input”,式者在程序开头加入以下代码:
#ifdef _MSC_VER #pragma comment( lib, "cg.lib" ) #pragma comment( lib, "cgGL.lib" ) #endif
三、Cg编程细节
为了使用CG着色器,我们必须在程序中建立一个着色上下文(CGcontext),一个程序,只需一个着色上下文就可以了。
要为每个着色器建立一个CGprogram,而每个着色器你都可以为它指定一个单独的显卡适配参(CGprofile),CGprofile是用来告诉CG如何选择最适合你显卡的方式来对顶点或片段着色。
着色器可以在任何你虽要用到的地方被载入,载入的时候只需要给程序传递一个着色器函数入口名,或是着色器文件名。本文例子中,着色器在绘图循环前被载入,并且,为了适应各种显卡的在求,我们为着色器指定了一个基础profile
1、设定着色器要用到的变量。
首先,把CG头文件包含到你的程序中:
#include <Cg/cg.h>
#include <Cg/cgGL.h>
接着,增加一些用来保存着色器入口地址的变量:
static CGcontext Context = NULL;static CGprogram VertexProgram = NULL;
以及一些着色参数的地址变量,在初始化着色器之后,这些地址变量将通过使用“CGparameters”与具体参数绑定在一起。
static CGparameter KdParam = NULL;
static CGparameter ModelViewProjParam = NULL;
static CGparameter VertexColorParam = NULL;
最后指定顶点着色用到的profile:static CGprofile VertexProfile = CG_PROFILE_VP20;
2、初始化CG
程序中,初始化OpenGL这后,接着要对CG进行初始化。
首先,要创建一个着色上下文,一个程序中有一个着色上下文(context)就可以了,所有要用到的着色器都将会共享这一个上下文。
Context = cgCreateContext();
其次,通过给上下文指定着色器文件名以及着色器类型(这里是顶点着色),把一个顶点着色器加到着色上下文中去。
VertexProgram = cgCreateProgramFromFile(Context,
CG_SOURCE, "vertexShader.cg",
VertexProfile,
NULL, NULL);
<< 上一篇:香儿《传奇霸业热血传奇手游》辅助软件 v4.6最新免费版 >>
<< 下一篇:台湾籍电信诈骗犯传奇世界单机版押解珠海:大陆警察太正规 >>