从MATLAB访问OpenGL
直接从matlab访问OpenGL渲染管道。
没有墨西哥人的文件,工具箱,或任何其他外部库。
例子
一些例子包括,明白了START_HERE.m
他们每个人的简要描述。
的3 d查看器的例子
分形样例
制作您自己的应用程序
的主要出发点是类GLController
(或glmu.GLController
使用函数glmu包中)。把它作为您的类的超类,管理呈现。
您需要定义下面的抽象方法。在这些方法中,gl
参数是当前GL上下文。
InitFcn (obj, gl,变长度输入宗量)
- 当您运行调用一次
画布。Init (__arg1、最长,…)
在你的类初始化方法。 - 这应该包含你的opengl初始化的东西。
- 当您运行调用一次
UpdateFcn (obj, gl)
- “每次
canvas.Update ()
被称为。它有一些东西在需要时调整和跳过饱和渲染过程的更新。 - 这应该包含你的opengl渲染管道为每个帧更新请求。
- “每次
ResizeFcn (obj, gl,深圳)
- 叫一次初始化之后,就在第一帧更新和当用户改变窗口大小。
- 总是叫之前
UpdateFcn (…)
,在需要的时候。 - 这应该包含你的opengl调整管道。
- 这是optionnal。如果没有设置,默认
gl.glViewport(0, 0,深圳(1),深圳(2));
有两种方法可以设置渲染的过程。
一直在一个
做一个GLController
子类一样:
classdef myApp < GLController方法函数obj = myApp框架()= JFrame (“myApp”);%创建java框架帆布= GLCanvas (“GL3”);%创建glcanvas frame.add(画布);%添加glcanvas obj.setGLCanvas(画布);%设置obj canvas.Init帆布控制器;结束函数InitFcn (obj, gl) %……结束函数UpdateFcn (obj, gl) %……结束结束结束
单独的控制器方法
如果你不想结束与一个巨大的类,你可以让一个单独的GLController Init,调整和更新功能。使GLController
子类:
classdef myController < GLController方法函数InitFcn (obj, gl) %……结束函数UpdateFcn (obj, gl) %……结束结束结束
然后,在主应用程序,您可以创建的窗口:
帧= JFrame (“WindowName”);%创建java框架帆布= GLCanvas (“GL3”);%创建glcanvas frame.add(画布);%添加glcanvas ctrl = myController;%构造控制器ctrl.setGLCanvas(画布);%分配画布canvas.Init;
InitFcn
,UpdateFcn
或ResizeFcn
当不使用gl你可以叫gl命令时不是在这些功能之一。为此,使用(gl,临时)= canvas.getContext
。临时的输出参数是上下文锁,必须要求。当温度超出范围,gl命令将抛出错误或运行什么事情都不做。
GL Matlab工具(glmu)
一个实用程序包中包含gl \ + glmu
。使用这个包,控制器必须是glmu.GLController
。更高级的示例使用它。
不需要您自己的应用程序。然而,它帮助很多抽象一些opengl的东西。随时让自己或为这个项目!
引用作为
弗朗西斯Plamondon (2023)。从MATLAB访问OpenGLGitHub (https://github.com/fr0nkk/matogl/releases/tag/v3.0.0)。检索。
例子
gl
gl / + glmu
gl / + glmu / +可拉的
gl / + glmu / +内部
跑龙套
版本 | 发表 | 发布说明 | |
---|---|---|---|
3.0.0.0 | GitHub上看到这个版本发布说明:https://github.com/fr0nkk/matogl/releases/tag/v3.0.0 |
||
2.2.1 | GitHub上看到这个版本发布说明:https://github.com/fr0nkk/matogl/releases/tag/v2.2.1 |
||
2.2.0 | GitHub上看到这个版本发布说明:https://github.com/fr0nkk/matogl/releases/tag/v2.2.0 |
||
2.1.1 | GitHub上看到这个版本发布说明:https://github.com/fr0nkk/matogl/releases/tag/v2.1.1 |
||
魅惑 | GitHub上看到这个版本发布说明:https://github.com/fr0nkk/matogl/releases/tag/v2.1.0 |
||
2.0.0 | GitHub上看到这个版本发布说明:https://github.com/fr0nkk/matogl/releases/tag/v2.0.0 |
||
1.2.0 | GitHub上看到这个版本发布说明:https://github.com/fr0nkk/matogl/releases/tag/v1.2.0 |
||
1.1.0 | GitHub上看到这个版本发布说明:https://github.com/fr0nkk/matogl/releases/tag/v1.1.0 |
||
1.0.0 |