新街口物联网 加入收藏  -  设为首页
您的位置:围棋入门基本知识 > 围棋百科 > 正文
opengl渲染gpu怎么选者
opengl渲染gpu怎么选者
提示:

opengl渲染gpu怎么选者

OpenGL是较老式的一种三维显卡,通常是显卡上面有自己的显频处理器,类似于系统的CPU,专门处理三维的加速用的,而不是用系统的CPU。以前这种显卡较贵,而且是专门给做三维尤其是AutoCAD等软件用的一种显卡。OpenGL有单核也有双核的,显卡的显存也是普通显卡的两倍左右。DirectX里面有所谓的Direct3D的支持,就是假如显卡里面的芯片(普通的三维显卡的芯片,如nVidia的关于三维的处理模式是预设的,而且是硬件支持,假如三维软件需要的三维指令不再显卡的芯片里面,那么CPU就会自动接过来做运算,而OpenGL的显卡的处理器可以自己做运算,不需要用到系统的CPU)有支持三维的指令,那么微软的DirectX中介就会让显卡做计算,假如显卡没有,那么就会是系统的CPU做计算。现在比较高级的显卡都有很多硬件内崁式的指令在显卡的芯片里面。OpenGL是最好的三维,但是价钱较贵。DirectX里面的Direct3D是最普遍的,但是因为三维的指令市场的更新,而芯片里面的指令是属于硬件,无法更新,所以要用到新的三维指令就要另买一个新的三维卡。这也就是为什么nVidia的9800要比9300好,好比8500好,因为越高的型号就有越新的三维指令。GoogleEarth是一款使用三维的模式计算和画出图像的软件,是利用非常微小的三角形和多角形来完成不同层次的图像,就像一个三维游戏一样。假如你的显卡支持OpenGL模式,那么GoogleEarth的绘画功能要较简单,以为大多数的计算过程你的显卡得到。假如你的显卡不支持OpenGL模式,而是DirectX模式,那么GoogleEarth运行就较慢些,因为软件的更新和三维指令不一定是每一个三维显卡都支持的。所以就要变成较简单的模式了。nVidia的GeFore9300GE应该是以DirectX模式运行的。

十大opengl教程
提示:

十大opengl教程

关于十大OpenGL教程如下: 1.Learn OpenGL-OpenGL官方教程 OpenGL官方网站提供了丰富的教程和文档,适合初学者入门和高级用户深入学习。这些教程涵盖了OpenGL的基本概念、渲染管线、着色器编程等内容,是学习OpenGL的重要资源。 2.OpenGL Programming Guide(Red Book)《OpenGL编程指南》 OpenGL编程指南是OpenGL的经典教材,被称为Red Book,内容详实,适合有一定编程基础的读者学习。书中介绍了OpenGL的基本概念、图形绘制、变换、光照等内容,并提供了大量实例和代码。 3.OpenGL SuperBible《OpenGL超级宝典》 OpenGL超级宝典是一本权威的OpenGL教程,适合初学者和有一定经验的读者。书中详细介绍了OpenGL的基本原理、渲染技术和高级特效,是学习OpenGL进阶的好资料。 4.OpenGL Insights《OpenGL洞察》 OpenGL洞察是一本深入研究OpenGL技术和应用的书籍,由多位OpenGL专家撰写。书中涵盖了OpenGL的高级技术和最佳实践,对于深入了解OpenGL的内部原理和优化非常有帮助。 5.OpenGL Shading Language(Orange Book)《OpenGL着色器语言》 OpenGL着色器语言是一本关于GLSL(OpenGL着色器语言)的教程,适合学习OpenGL着色器编程。书中介绍了GLSL的语法、语义和使用方法,并提供了大量实例和应用场景。

如何使用Android中的OpenGL ES媒体效果
提示:

如何使用Android中的OpenGL ES媒体效果

准备

为了开始本次的教程,你必须具备:
1.一款支持Android开发的IDE,如果你没有的话,可以在Android Developer website下载最新版本的Android studio。
2.一款运行Android4.0之上Android手机,并且GPU支持OpenGL ES2.0
3.对OpenGL的基本知识了解

设置OpenGL ES环境

创建GLSurfaceView

为了显示OpenGL的图形,你需要使用GLSurfaceView类,就像其他任何的View子类意义,你可以将它添加到你的Activity或Fragment之上,通过在布局xml文件中定义或者在代码中创建实例。

在本次的教程中,我们使用GLSurfaceView作为唯一的View在我们的Activity中,因此,为了简便,我们在代码中创建
GLSurfaceView的实例并将其传入setContentView中,这样它将会填充你的整个手机屏幕。Activity中的onCreate方
法如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

GLSurfaceView view = new GLSurfaceView(this);
setContentView(view);
}123456123456

因为媒体效果的框架仅仅支持OpenGL ES2.0及以上的版本,所以在setEGLContextClientVersion 方法中传入2;
view.setEGLContextClientVersion(2);11

为了确保GLSurfaceView仅仅在必要的时候进行渲染,我们在setRenderMode 方法中进行设置:
view.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);11

创建Renderer

Renderer负责渲染GLSurfaceView中的内容。

创建类实现接口GLSurfaceView.Renderer,在这里我们打算将这个类命名为EffectsRenderer,添加构造函数并覆写接口中的抽象方法,如下:
public class EffectsRenderer implements GLSurfaceView.Renderer {

public EffectsRenderer(Context context){
super();

如何使用Android中的OpenGL ES媒体效果
提示:

如何使用Android中的OpenGL ES媒体效果

Android的媒体效果框架允许开发者可以很容易的应用多种令人印象深刻的视觉效果到照片或视频之上。作为这个媒体效果的框架,它使用GPU来处
理图片处理的过程,它仅仅接收OpenGL的纹理(texture)作为输入。在本次教程中,你将会学习到如何使用OpenGL
ES2.0将图片资源转化为纹理,以及如何使用框架为图片应用不同的处理效果。
准备
为了开始本次的教程,你必须具备:
1.一款支持Android开发的IDE,如果你没有的话,可以在Android Developer website下载最新版本的Android studio。
2.一款运行Android4.0之上Android手机,并且GPU支持OpenGL ES2.0
3.对OpenGL的基本知识了解
设置OpenGL ES环境
创建GLSurfaceView
为了显示OpenGL的图形,你需要使用GLSurfaceView类,就像其他任何的View子类意义,你可以将它添加到你的Activity或Fragment之上,通过在布局xml文件中定义或者在代码中创建实例。
在本次的教程中,我们使用GLSurfaceView作为唯一的View在我们的Activity中,因此,为了简便,我们在代码中创建
GLSurfaceView的实例并将其传入setContentView中,这样它将会填充你的整个手机屏幕。Activity中的onCreate方
法如下:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

GLSurfaceView view = new GLSurfaceView(this);
setContentView(view);
}

因为媒体效果的框架仅仅支持OpenGL ES2.0及以上的版本,所以在setEGLContextClientVersion 方法中传入2;
view.setEGLContextClientVersion(2);

为了确保GLSurfaceView仅仅在必要的时候进行渲染,我们在setRenderMode 方法中进行设置:
view.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

创建Renderer
Renderer负责渲染GLSurfaceView中的内容。
创建类实现接口GLSurfaceView.Renderer,在这里我们打算将这个类命名为EffectsRenderer,添加构造函数并覆写接口中的抽象方法,如下:
public class EffectsRenderer implements GLSurfaceView.Renderer {

public EffectsRenderer(Context context){
super();
}

@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
}

@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
}

@Override
public void onDrawFrame(GL10 gl) {
}
}

回到Activity中调用setRenderer方法,让GLSurfaceView使用我们创建的Renderer:
view.setRenderer(new EffectsRenderer(this));

编写Manifest文件
如果你想要发布你的App到谷歌商店,在AndroidManifest.xml文件中添加如下语句:

这会确保你的app只能被安装在支持OpenGL ES2.0的设备之上。现在OpenGL环境准备完毕。
创建一个OpenGL平面
定义顶点
GLSurfaceView是不能直接显示一张照片的,照片首先应该被转化为纹理,应用在OpenGL square之上。在本次教程中,我将创建一个2D平面,并且具有4个顶点。为了简单,我将使用一个长方形,现在,创建一个新的类Square,用它来代表形状。
public class Square {

}

默认的OpenGL系统的坐标系中的原点是在中心,因此4个角的坐标可以表示为:
左下角: (-1, -1) 右下角:(1, -1) 右上角:(1, 1) 左上角:(-1, 1)
我们使用OpenGL绘制的所有的物体都应该是由三角形决定的,为了画一个方形,我们需要两个具有一条公共边的三角形,那意味着这些三角形的坐标应该是:
triangle 1: (-1, -1), (1, -1), 和 (-1, 1) triangle 2: (1, -1), (-1, 1), 和 (1, 1)
创建一个float数组来代表这些顶点:
private float vertices[] = {
-1f, -1f,
1f, -1f,
-1f, 1f,
1f, 1f,
};

为了在square上定位纹理,需要确定纹理的顶点坐标,创建另一个数组来表示纹理顶点的坐标:private float textureVertices[] = {
0f,1f,
1f,1f,
0f,0f,
1f,0f
};