Cg 和 OpenGL 3

Posted

技术标签:

【中文标题】Cg 和 OpenGL 3【英文标题】:Cg and OpenGL 3 【发布时间】:2010-09-08 19:55:35 【问题描述】:

我目前正在学习 OpenGL 2 和 3 之间的区别,我注意到许多函数如 glVertexglVertexPointerglColorglColorPointer 等都消失了。

我习惯于使用 Cg 来处理着色器。例如我会写这个简单的顶点着色器:

void main(in inPos : POSITION, out outPos : POSITION) 
    outPos = inPos;

然后我会使用glVertexglVertexPointer 来设置inPos 的值。

但是由于这些函数在 OpenGL 3 中不再可用,您应该如何进行绑定?

【问题讨论】:

【参考方案1】:

首先我建议你看看the answer to this question: What's so different about OpenGL 3.x?

其次,Norbert Nopper 有很多使用 OpenGL 3 和 GLSL 的示例here

最后是一个简单的GLSL example,它向您展示了如何绑定顶点和片段着色器程序。

【讨论】:

但是如果我想使用 Cg 语法呢? :-/ (不是因为我喜欢它,而是因为它的语法几乎和 HLSL 一样) 看看nehe.gamedev.net/data/lessons/lesson.asp?lesson=47。还有这篇文章opengl.org/discussion_boards/… 在 OpenGL 论坛上。 谢谢,第二个链接正是我要找的

以上是关于Cg 和 OpenGL 3的主要内容,如果未能解决你的问题,请参考以下文章

在 CG 和 openGL 中使用统一的 1D 纹理参数时出错

[OpenGL红宝书]第一章 OpenGL概述

OpenGL Cg 几何着色器

Fresnel效果和颜色色散(Using OpenGL & Cg)

Unity Shader学习5 —— Cg语言的基础

OPENGL中执行时显示_glutInitWithExit无法定位于动态链接库glut32.dll上