Jogl着色器编程

2023-11-27

我刚刚开始着色器编程(GLSL)并使用 RenderMonkey 创建了一些。现在我想在我的 java 代码中使用这个着色器。有没有一些简单的例子来说明我如何做到这一点?


我找到了一个非常简单的例子

int v = gl.glCreateShader(GL.GL_VERTEX_SHADER);
int f = gl.glCreateShader(GL.GL_FRAGMENT_SHADER);

BufferedReader brv = new BufferedReader(new FileReader("vertexshader.glsl"));
String vsrc = "";
String line;
while ((line=brv.readLine()) != null) {
  vsrc += line + "\n";
}
gl.glShaderSource(v, 1, vsrc, (int[])null);
gl.glCompileShader(v);

BufferedReader brf = new BufferedReader(new FileReader("fragmentshader.glsl"));
String fsrc = "";
String line;
while ((line=brf.readLine()) != null) {
  fsrc += line + "\n";
}
gl.glShaderSource(f, 1, fsrc, (int[])null);
gl.glCompileShader(f);

int shaderprogram = gl.glCreateProgram();
gl.glAttachShader(shaderprogram, v);
gl.glAttachShader(shaderprogram, f);
gl.glLinkProgram(shaderprogram);
gl.glValidateProgram(shaderprogram);

gl.glUseProgram(shaderprogram); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jogl着色器编程 的相关文章

随机推荐

  • Android,布局中的透明子GLSurfaceView? [复制]

    这个问题在这里已经有答案了 可能的重复 Android OpenGL ES 透明背景 我想在正常的 2d ui 布局屏幕上显示一些 3d 对象 2d ui 屏幕有背景图像 GLSurfaceView 是内容布局的子级 我在 ApiDemos
  • NSUserDefaults 是否会通过更新 Appstore 中的应用程序而持续存在?

    是这样吗 当您向 App Store 上的应用程序提交更新时 NSUserDefaults 是否会重置 或者是否会重置 我的应用程序在更新时崩溃 但在完全下载时不会崩溃 所以我试图确定更新的会话与新下载的会话中可能有什么不同 干杯 缺口 除
  • 如何使用 dplyr 将累积列添加到 R 数据帧?

    我有同样的问题这个帖子 但我想用dplyr 使用 R 数据框 例如 df lt data frame id rep 1 3 each 5 hour rep 1 5 3 value sample 1 15 如何添加与 id 匹配的累积和列 W
  • Scrapy process_links 和 process_request 的示例代码

    我是 Scrapy 的新手 我希望有人能给我一些很好的示例代码 说明何时 process links 和 process request 最有用 我看到 process links 用于过滤 URL 但我不知道如何编码 谢谢 你的意思是sc
  • 从 R 中的字符串中删除表情符号

    我有一个推文列表 其中许多包含需要删除的表情符号 在 R 中执行此操作最有效的方法是什么 我尝试了以下方法 该方法应该用空白替换所有以 开头的单词 但我收到此错误 some tweets lt gsub w some tweets Erro
  • Python 中的“按位非”不考虑 2 的补码

    我需要在Python中执行 操作 但不考虑2的补码 我设法通过使用来做到这一点XOR 你知道另一种方法吗 更高效 a 0b101 b 0b10101 print bin a 2 a bit length 1 0b10 print bin b
  • 使用 lambda 参数重写 Coq

    我们有一个函数可以将元素插入到列表的特定索引中 Fixpoint inject into A x A l list A n nat option list A match n l with 0 gt Some x l S k gt None
  • 如何在正则表达式中匹配 12 小时时间 hh:mm?

    如何在正则表达式中匹配 12 小时时间 换句话说 匹配 12 30 但不匹配 14 74 谢谢 这应该有效 1 9 1 012 0 5 0 9
  • 如果我不告诉 C++ 中要抛出什么类型的对象,则抛出什么 throw 语句?

    由于没有显式抛出任何对象 以下代码异常终止 下面代码中的 throw 语句抛出了什么 int main try cout lt lt try throw catch cout lt lt catch return 0 throw不带参数只能
  • Bootstrap 轮播中的文本垂直居中

    我在 Bootstrap 4 中创建文本水平和垂直居中的轮播时遇到问题 我已经创建了bootply使用轮播 但文本位于左上角而不是屏幕中间 div class carousel slide div class carousel inner
  • RESTEasy 返回的集合中的根元素名称

    我在 JBoss AS 6 中通过 RestEasy 使用 JAX RS 当我的 JAX RS 资源返回项目集合 例如通过列表 时 RESTEasy 始终使用名称collection作为根元素 E g
  • 在一个文件中引用 typescript 定义,而不是所有 JS 文件?

    我正在 Visual Studio Code 中开发 Node JS Express 项目 并且想知道是否有一种方法可以在一个全局位置引用 TypeScript 定义 而不必在每个 JS 文件中重新引用定义 我看到 VSCode 支持 ts
  • 检索存档消息时未实现该功能

    我在用Openfire 3 8 2并安装了监控插件并启用了一对一聊天的存档 现在我可以在服务器端查看存档聊天 但是当我通过一个节时 我得到feature not implemented Request
  • 向数据框的“类”提供向量

    您知道如何向数据框提供名称向量来更改数据框的列或行名称 是否有类似的方法来提供名称向量来更改数据框中每列的类 当您使用 colClasses 通过 read table 读取数据帧时 可以执行此操作 如果数据框是在 R 内部创建的呢 DF
  • 使用 PhoneGap 覆盖 Android 后退按钮行为仅适用于第一页

    我正在使用 PhoneGap 1 5 0 jQuery 1 7 1 和 jQuery mobile 1 0 1 并尝试按照所述覆盖 Android 中的后退按钮here or here document addEventListener d
  • 如何使用QTextBlock?

    我对 C 和 Qt 完全陌生 我想填充一个QTextEdit对象与QTextBlocks 我怎么做 e g 如果我有一句话 鱼来了 我如何将每个单词放入自己的单词中QTextBlock并将该块添加到QTextEdit 或者我误解了如何QTe
  • 使用 GSON 的 Java 克隆对象

    我必须多次克隆一个对象 我的对象是不可序列化的 我正在使用以下功能 SuppressWarnings unchecked public static T cloneThroughJson T t Gson gson new Gson Str
  • htaccess 如果不是子域则添加 www,子域的则删除 www

    我正在尝试做到这一点 可能例子是最好的 所以 domain com gt www domain com www domain com gt www domain com subdomain domain com gt subdomain d
  • 学习多种语言[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 一旦你学会了一种语言 学习
  • Jogl着色器编程

    我刚刚开始着色器编程 GLSL 并使用 RenderMonkey 创建了一些 现在我想在我的 java 代码中使用这个着色器 有没有一些简单的例子来说明我如何做到这一点 我找到了一个非常简单的例子 int v gl glCreateShad