标签: opengl-es

如何使用cocos2d为iPhone绘制一个实心圆圈

是否可以用cocos2d绘制一个实心圆圈?可以使用drawCircle()函数完成轮廓圆,但有没有办法以某种颜色填充它?也许通过使用纯OpenGL?

iphone geometry opengl-es cocos2d-iphone

15
推荐指数
2
解决办法
2万
查看次数

Android OpenGL ES Framebuffer对象 - 渲染深度缓冲到纹理

我正在使用运行Froyo的Android设备,支持OpenGL ES 1.1和OpenGL ES 2.0

我想将深度缓冲区渲染到纹理.在其他平台(包括iPhone)上看过OpenGL ES OpenGL ES的一些例子后,我尝试了很多FBO配置.

我似乎能够使用颜色纹理获得FBO设置,但每次我附加深度纹理时它都会失败.

我当前的代码基于此示例,但也创建了颜色纹理,而不是将绘制和读取缓冲区设置为无.

是否有一个在Android上配置OpenGL ES FBO以向纹理渲染深度的简单示例?或者是否有一个描述支持和不支持的文档?


感谢您的评论 - 我特别需要ES 1.1的解决方案,如果它可以找到并在Android上运行.我也想看看ES 2 - 我不确定我理解将深度信息打包到色彩缓冲区的想法 - 你有一个参考我可以看看更好地理解这个想法吗?

关于代码 - 我的来源与我上面发布的链接几乎没有什么不同.Framebuffer状态是它不完整.


感谢片段着色器建议 - 我现在明白了.如果我不能让另一个解决方案工作,请看看.我的理想是同时获得深度和颜色 - 如果我能帮助它,不要分别渲染颜色和深度.

android opengl-es depth-buffer

15
推荐指数
1
解决办法
2万
查看次数

像素空间中的OpenGL纹理坐标

我正在开发一款使用OpenGL ES 2进行绘图的iPhone应用程序.我知道通常纹理坐标是在0-1范围内定义的,但理想情况下我想将它们从0-1023(我的TextureAtlas的大小)映射出来以便于阅读.我已经看到了以这种方式定义坐标的示例代码,但是无法确定以前允许这样做的调用.glMatrixMode(GL_TEXTURE)好像它可能涉及,但我不太确定如何实现它.

我的最终目标是完成这样的事情,我在地图册中使用的纹理位于左上角48px的正方形中:

GLshort texcoords[]={
  48,48,
  0,48,
  48,0,
  0,0,
};
glVertexAttribPointer(ATTRIB_TEXTUREPOSITON, 2, GL_SHORT, 0, 0, texcoords);
glEnableVertexAttribArray(ATTRIB_TEXTUREPOSITON);
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch opengl-es objective-c

15
推荐指数
3
解决办法
2万
查看次数

Android:Canvas vs OpenGL

我有一个绘图应用程序,用户可以用手指画线,调整颜色,厚度等.当用户绘图时,我将集合的X/Y点MotionEvent转换为SVG路径,以及创建Android路径和然后通过Canvas将Android Path's绘制到屏幕上,并将SVG Path提交到应用程序的数据库.

我正在关注FingerPaint中使用的模型,因为"进行中"行是通过重复调用invalidate()(以及因此onDraw())动态绘制的,一旦行完成并且新行开始,前一行(s) )onDraw()从底层抽取Canvas Bitmap,进行中的线再次产生重复的重绘.

这在此应用程序中工作正常 - 直到您开始旋转底层Bitmap以补偿设备旋转,支持在绘图表面上"放大"并因此必须缩放底层Bitmap等的能力.例如,设备旋转和缩放的图形,当用户绘图时,我们需要在onDraw()中缩放和旋转我们的位图,这绝对是爬行的.

我看了一下SurfaceView,但由于这仍然使用相同的Canvas机制,我不确定我会看到明显的改进......所以我的想法转向OpenGL.我已经读过某个地方,OpenGL可以基本上"免费"进行旋转和缩放,甚至可以看到未来版本中可能消失的谣言(第三条评论)Canvas.

从本质上讲,我在CanvasOpenGL解决方案之间有点困难......我有一个2D绘图应用程序,Canvas在一个状态下似乎完全适合模型,因为没有像游戏那样不断的重新绘制(例如当用户没有绘图我不需要任何重新绘图),但是当用户绘图时,我需要最大的性能来完成表面上一些越来越复杂的事情......

欢迎任何想法,指示和建议.

android canvas opengl-es

15
推荐指数
1
解决办法
2万
查看次数

GLKView和EAGLView有什么区别?

我在iOS应用程序中看到了EAGLView和GLKView.他们之间有什么区别?

iphone opengl-es objective-c ios ios5

15
推荐指数
1
解决办法
4635
查看次数

GLKit的GLKMatrix"专栏"如何?

前提A.

当在线性存储器中讨论"列主要"矩阵时,一个接一个地指定列,使得存储器中的前4个条目对应于矩阵中的第一列.另一方面,"行主要"矩阵被理解为一个接一个地指定行,使得存储器中的前4个条目指定矩阵的第一行.


A GLKMatrix4看起来像这样:

union _GLKMatrix4
{
    struct
    {
        float m00, m01, m02, m03;
        float m10, m11, m12, m13;
        float m20, m21, m22, m23;
        float m30, m31, m32, m33;
    };
    float m[16];
}
typedef union _GLKMatrix4 GLKMatrix4;
Run Code Online (Sandbox Code Playgroud)

文件将在m人员说:

列主要顺序的矩阵元素的一维数组.

前提B

GLKMatrix4中的"行"是一组4个水平声明的浮点数([m00, m01, m02, m03]将是第一个"行").因此,这些条目可以解释为mRowCol(m12将是第1行第2列的条目).


如果我们根据声明的顺序查看这些GLKMatrix结构成员的布局,我们会看到:

[m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, ...]

前4个条目清楚地表示矩阵的第一,而不是第一列.

结论

m 实际上并不是专业,而且文档是错误的.


现在,我应该注意到我实际上并不相信结论,但这两个前提似乎很合理.实际上,我最不信任前提B,但将"行"定义为垂直并将"列"定义为水平似乎很奇怪.有人可以解释一下吗?

c opengl-es matrix ios glkit

15
推荐指数
2
解决办法
2671
查看次数

我可以在Windows Phone 8应用程序中使用OpenGL ES吗?

我已经阅读过Windows Phone 8不支持OpenGL的地方,而且我无法在SDK中找到任何有用的东西.

那么我能否在Windows Phone 8游戏中使用OpenGL(ES)?我有一个游戏,我不想在移植时完全重写为DirectX.

请引用很好的消息来源,我发现的唯一的东西是推测和博客文章几乎没有信息.

opengl-es windows-phone-8

15
推荐指数
1
解决办法
2万
查看次数

试图读取Xcode Instruments .trace文件..trace文件的文件格式是什么?

我正在编写一个自动分析系统,以便在我的应用程序中分析不同的GPU密集型屏幕.我一直在尝试使用'XCode Instruments',使用'OpenGL ES Driver'仪器来捕获gpu使用数据.

我的自动化系统从命令行运行Xcode Instruments,命令行运行App,配置文件并捕获数据,并将数据写入".trace"文件.

我现在希望能够打开跟踪文件,并使用我的自动分析系统读取跟踪数据,以便我可以通知App开发人员应用程序的各个部分如何执行.

但是我找不到任何方法来读取跟踪文件.它似乎是包含各种目录的包,并且埋没在.zip文件中似乎包含一些二进制数据.如何解析此文件中的数据?

仪器系统看起来相当复杂,我很惊讶它访问它产生的跟踪数据有多难.

有谁知道如何解析跟踪文件?

我目前正在使用XCode 4.6.1

iphone xcode opengl-es instruments ios

15
推荐指数
1
解决办法
7237
查看次数

Haskell Android OpenGL

我一直遇到使用Ajhc在OpenGL中跟踪我的2d对象的问题.

我不知道如何跟踪我的物体并防止它离开设备的宽度和高度.有人可以提供帮助吗?

我的代码在这里:

module Draw where
import CubeVerts
import CoSys
import AndroidNdk
import AndroidNdk.Log

import Foreign.Marshal.Array

spriteMv :: Float -> Float -> Float -> Float -> Float -> IO ()
spriteMv x y dx dy z = do
    drawFunc

drawFunc :: IO ()
drawFunc = do
    c_glDrawArrays c_GL_TRIANGLES 0 6

spritePlayer :: Float -> Float -> Float -> Float -> Float -> IO ()
spritePlayer x y dx dy z = do
    withArray vertices $ ?vp -> withArray colors $ …
Run Code Online (Sandbox Code Playgroud)

android haskell opengl-es

15
推荐指数
1
解决办法
930
查看次数

如何在Vigo Video Hypstar等摄像机上实时预览录像机

我想用Gif或图像像Vigo更改Surface预览底部叠加层

像这样

在此输入图像描述

请告诉我任何sdk或我用于此过滤器的内容

我可以使用此更改顶视图上的叠加层

这有帮助

 PictureCallback cameraPictureCallbackJpeg = new PictureCallback() 
  {  
    @Override
    public void onPictureTaken(byte[] data, Camera camera) 
    {
      // TODO Auto-generated method stub   
      Bitmap cameraBitmap = BitmapFactory.decodeByteArray
                                                                  (data, 0, data.length);

   int   wid = cameraBitmap.getWidth();
     int  hgt = cameraBitmap.getHeight();

    //  Toast.makeText(getApplicationContext(), wid+""+hgt, Toast.LENGTH_SHORT).show();
      Bitmap newImage = Bitmap.createBitmap
                                        (wid, hgt, Bitmap.Config.ARGB_8888);

      Canvas canvas = new Canvas(newImage);

      canvas.drawBitmap(cameraBitmap, 0f, 0f, null);

     Drawable drawable = getResources().getDrawable
                                                          (R.drawable.mark3);
      drawable.setBounds(20, 30, drawable.getIntrinsicWidth()+20, drawable.getIntrinsicHeight()+30);
    drawable.draw(canvas);



      File storagePath = new File(Environment.
                    getExternalStorageDirectory() + "/PhotoAR/"); 
      storagePath.mkdirs(); …
Run Code Online (Sandbox Code Playgroud)

camera android ffmpeg opengl-es chromakey

15
推荐指数
2
解决办法
662
查看次数