用cogl绘制3D?

时间:2013-12-07 16:22:27

标签: 3d gnome vala clutter cogl

  

Cogl是一个现代3D图形API,带有相关的实用程序API,旨在使用比OpenGL更面向对象的设计来展示3D图形硬件的功能。该库主要受到Clutter实际需求的驱动,但它不依赖于任何一个工具包,甚至不限于开发UI工具包。

我已经知道了常见gnome库的名称:cairo,pango,gtk,clutter和cogl很长一段时间,但最近我实际上发现了库的功能。并且gnome文档告诉我cogl可以以更多的方式绘制3D,如上面的引用所示。但我觉得很难开始。

那么如何使用cogl在vala中绘制一个3d立方体? 是否可以用杂乱的方式为立方体设置动画?

通过互联网浏览后,我找不到多少。所以我去Github看了一些其他人的代码,但大部分代码是用C语言制作的,似乎很难阅读。

您能展示一些使用vala编写的示例或链接吗? (也可以在C中,但它使阅读更难一点)

提前致谢

2 个答案:

答案 0 :(得分:3)

我在Vala中为Cogl写了几个例子。

链接:

希望,这可能很有用。

答案 1 :(得分:1)

CoglRenderer的当前vapi文件中没有CoglContextcogl-1.0个类。

我认为你甚至不能在没有这些的情况下初始化Cogl,我可以奇怪地只在cogl-2.0的文档中找到它。

https://developer.gnome.org/cogl-2.0-experimental/stable/

由于似乎根本没有任何Vala示例且C示例不多,因此很难提出您的问题。

您应该询问Cogl邮件列表。

修改:由于你的问题是关于Clutter + Cogl,确实有一个Vala示例:https://wiki.gnome.org/Projects/Vala/ClutterSamples

Edit2 :这里有一个使用cogl-2.0的Hello World教程:http://www.cogl3d.org/hello.html

正如你所看到的,Cogl更低级别,当你独立使用它时(没有Clutter)你必须自己做很多设置代码(创建绘图上下文,创建一个框架,创建绘图基元,创建一个绘图)管道,绘制你的原语等。)。

我不知道Clutter如何在内部工作,但我认为它为你做了很多工作。

在任何情况下,如果你先学习一些OpenGL就不会受到伤害,因为Cogl是OpenGL的包装。

<强> EDIT3 : 此博客文章介绍了如何将Cogle集成到Clutter:http://radialmind.blogspot.de/2012/02/cogl-or-opengl-for-3d-clutter-scenes.html

  

这就是你跳出杂乱循环的方法:定义一个自定义   演员。我在C中做过一个,另一个例子使用C ++版本。也可以看看   这里。定义一些可以修改事物渲染方式的属性   一些其他一般行为。覆盖绘制循环。保存   矩阵,定义自己的矩阵,调用自定义绘图代码   3D(必须是cogl!)然后在找到它们时将矩阵放回原位。