Klimt 特点 与OpenGL和OpenGL|ES 对比及其关系

摘要:
它的API与OpenGL和OpenGL|ES非常相似。开发Klimt的组织没有声明其API的一致性。然而,Klimt可以与Coin3D的程序兼容,Coin3D是一个基于OpenGL的具有大量场景图形的基本库。Klimt基于公共OpenGL和OpenGL|ESAPI,但未经SGI认证或授权。OpenGL和OpenGL是SGI的注册商标,但Klimt不受SGI的约束。Klimt的目标平台是独立的高速硬件。Klimt的功能:Klimt目前提供以下功能:a.完全投影和尝试模型矩阵支持b.完全纹理矩阵支持c.支持OpenGL中定义的所有原始类型。
http://read.newbooks.com.cn/info/129308.html

 Klimt (原名为SoftGL)是一个开源的3D图形库,主要针对的PDA和移动通信设备的应用。它的API和OpenGL和OpenGL|ES非常相像。开发 Klimt的组织并没有对其API的一致性进行声明。不过,Klimt可以兼容Coin3D的程序,Coin3D是建立在OpenGL之上的一种具有大量 场景图形的基础库。
Klimt 是基于公共的OpenGL和OpenGL|ES API,但是它并不是由SGI公司(Silicon Graphics)鉴定或授权实现的。OpenGL 和 OpenGL是SGI公司注册的商标,但Klimt并不受SGI的约束。Klimt在GPL(General Public License)授权下是自由的。
Klimt的目标平台是独立和高速的硬件。要在硬件运行Klimt的唯一要求是有一个16位以上的线性帧缓冲区。Klimt的编译没有过多的依赖,对于最小的版本不需要传统的库。
目前Klimt可以运行啊以下平台:
Windows (XP,2000,etc...)
PocketPC 2000 & 2003
MS Smartphone
Linux on iPAQ (使用 TinyPTC)
Linux on Shart Zaurus
Linux with X11
将来要面向的平台还有
SymbianOS
PalmOS

Klimt支持两种模式:
它可以以一个轻量的层次运行在OpenGL|ES实现上,提供OpenGL|ES从OpenGL裁剪的许多特性,比如Begin/End, primitive types, texture formats, index types, 等等;
它可以使用其内部的软件光栅器独立地运行。

Klimt的特性:
Klimt 目前提供以下功能:
a. 完全的投影和试图模型矩阵支持
b. 完全纹理矩阵支持
c. 支持OpenGL中定义的所有原始的类型。
d. 支持顶点数组
e. 支持剔除和裁剪(Culling & clipping)
f. 支持顶点光照
g. 支持透视和仿射纹理
i. 支持视频背景(使用glDrawPixels函数)
j. 支持显示列表(Display lists)和属性堆栈(Attribute stacks)

Klimt 目前没有实现的特性:
a. 多边形刻画
b. 反锯齿
c. 积聚和alpha缓冲
d. 自动纹理坐标产生
e. 所有不适用于简单和快速软件实现的特性

原文:
Klimt is an open-source 3D library, targeted for PDAs and mobile phones. Its API is very similiar to that of OpenGL and OpenGL|ES. We do not claim conformance with these APIs. Nevertheless, Klimt is able to run Coin3D, a large scene-graph base library that builds on top of OpenGL.
This product is based on the published OpenGL® ES API, but is not an implementation which is certified or licensed by Silicon Graphics, Inc.
Klimt is targeted for hardware independence and speed. The only requirement for an actual device to to be able to run Klimt is a 16-bits (RGB565) linear framebuffer. Klimt compiles without any further dependencies. No additional libraries are required for a minimum version.
Currently Klimt runs on the following list of platforms:
    * Windows (XP, 2000, etc...)
    * PocketPC 2002 & 2003
    * MS Smartphone
    * Linux on iPAQ (using TinyPTC)
    * Linux on Shart Zaurus
    * Linux with X11
Upcoming platforms are
    * SymbianOS (work in progress)
    * PalmOS (planned)
Klimt currently provides the following functionality:

    * Full projection and modelview matrix support
    * Full texture matrix support
    * All primitive types defined in OpenGL
    * Vertex Arrays
    * Culling & clipping
    * Vertex lighting
    * Perspective and affine texturing
    * Video background (glDrawPixels)
    * Display lists & Attribute stacks

Features currently not targeted by Klimt:

    * Polygon stippling
    * Antialiasing
    * Accumulation & alpha buffer
    * Automatic texture coordinates generation
    * All kinds of features not suitable for a simple and fast software implementation...

Klimt结合了OpenGLOpenGL|ES的某些适用于嵌入式设备的特性,下表比较了他们的区别,使得Klimt的更加灵活的3D图形表现能力。

 

OpenGL

OpenGL|ES

Klimt

 

glBegin/glEnd

×

 

Prim Types

全部

没有 Quads, Quad Strips & Polygons

全部

 

Vertex Arrays

 

Vertex Lighting

 

Data Types

float, double, int, etc...

float, fixed

float, double, int, fixed

 

Multisampling & AA

可选的

可选的

×

 

Polygon

Stipple & Smooth

×

×

 

glDraw/Read Pixels

只有 glReadPixels

只有 glDrawPixels

 

Textures

所有类型

2D

2D

 

Texture wrap, repeat, etc..

wrap, clamp_to_edge

wrap

 

compressed Textures

×

 

Multitexture

可选的

×

 

Fog

 

Scissor Test

 

Alpha Test

×

 

Stencil Test

可选的

×

 

Depth Test

 

Blending

 

Clipplanes

×

×

 

WGL Functions

×

 

EGL Functions

×

  

免责声明:文章转载自《Klimt 特点 与OpenGL和OpenGL|ES 对比及其关系》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle Namespace 说明ASP.Net MVC C#画图 页面调用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

OpenGL学习笔记——C++(待续)

一、环境搭建 1、新建macOS项目; 2、添加OpenGl.framework和GLUT.framework两个系统库; 3、拖入include和libGLTool.a文件,libGLTools.a直接拖到工程的Frameworks文件里面; 4、删除AppDelegate.h,AppDelegate.m,main.m,ViewController.h,...

[osg][opengl]透视投影的参数Perspective

gluPerspective这个函数指定了观察的视景体(frustum为锥台的意思,通常译为视景体)在世界坐标系中的具体大小,一般而言,其中的参数aspect应该与窗口的宽高比大小相同。比如说,aspect=2.0表示在观察者的角度中物体的宽度是高度的两倍,在视口中宽度也是高度的两倍,这样显示出的物体才不会被扭曲。 gluPerspective NAME...

OpenGL教程一

引自:https://blog.csdn.net/u013654125/article/details/73613644 GLEW, GLFW和GLM介绍 现在你有了工程,就让我们开始介绍下工程所用到的开源库和为啥需要这些。 The OpenGL Extension Wrangler (GLEW)是用来访问OpenGL 3.2 API函数的。不幸的是你不能...

win7 64 &vs2010 与 opengl配置

http://blog.csdn.net/lixam/article/details/7618015 http://blog.sina.com.cn/s/blog_7745fc8601017m36.html _________________________________________________________________ 我的配置: 1....

openGL 函数 收集

glViewport()函数 在OpenGL初始化完成之后,我们应该进行一些视图设置。首先是设定视见区域,即告诉OpenGL应把渲染之后的图形绘制在窗体的哪个部位。当视见区域是整个窗体时,OpenGL将把渲染结果绘制到整个窗口。我们调用glViewPort函数来决定视见区域: procedureglViewPort(x:GLInt;y:GLInt;Widt...

Qt OpenGL 你的第一个多边形

这次教程中,我们将添加一个三角形和一个四边形。或许你认为这很简单,但要知道任何复杂的绘图都是从简单开始的,或者说任何复杂的模型都是可以分解成简单的图形的。所以,我们还是从简单的图形开始吧。 读完这一次教程,你还会学到如何在空间放置模型以及了解OpenGL中坐标变化。 程序运行时效果如下: 下面进入教程: 我们将使用GL_TRIANGLES来创建一个三角形...