草庐IT

opengl_test

全部标签

java - 将基于 Java OpenGL 的 Android 游戏移植到 iOS(无 native 代码)

我在这里可能有点搞砸了。我一直在开发一种引擎,用于我制作了很长时间的各种游戏。该引擎是用100%Java(无NDK)编写的,并使用OpenGLES1x进行渲染。它有纹理、3d网格加载、动画、基于图像的字体、tilemaps、自定义文件类型,以及大约8.5k行代码的所有好东西,所以你可能明白为什么我不想在iOS上重新创建所有这些:(无论如何,一些引擎依赖于AndroidSDK,但这些部分可以很容易地删除/更改,只留下引擎代码和对opengl的调用。然而,之前从未在iOS上开发过任何东西,我有点不知道应该从哪里开始移植。我知道您需要在iOS上使用XCode(或者它是objective-c?

iphone - 如何阻止 UIScrollView 阻止 GLKViewController 的 OpenGL ES 2.0 动画内容?

我尝试了一切:1.在UITrackingRunLoopMode中使用重复的NSTimers并手动强制当前GLKView的drawInRect。它不会更新任何内容,即使这些方法不断被调用;2.使用带有“dispatch_async”的调度队列,它不会绘制我的OpenGL内容。我看到的关于UIScrollView和OpenGL的每个示例都通过更改CADisplayLink的默认运行循环来处理问题,我没有将其与GLKViewController一起使用。有人遇到过这个问题吗?任何见解都会很棒:)提前致谢,努诺 最佳答案 我找到的一个解决方

objective-c - 用opengl绘制少于每一帧

在cocos2d中,他们是否有任何方式通过opengl进行cclayer绘制的频率低于每一帧?我试过:-(void)draw{glEnable(GL_LINE_SMOOTH);if(iShouldUpdate){ccDrawLine(ccp(50,50),ccp(200,200));iShouldUpdate=false;}}-(void)updateTheMap{iShouldUpdate=true;}然后在需要时调用:updateTheMap,但它只显示1帧。谢谢。 最佳答案 是也不是。通常情况下,帧内容会在新帧呈现之前被清除。

ios - 如何用 glkit、opengl es2 绘制数千个正方形?

我正在尝试在屏幕上绘制多达200,000个正方形。或者基本上有很多方block。我相信我只是在调用许多绘制调用,这会削弱应用程序的性能。方block只会在我按下按钮时更新,所以我不必每一帧都更新它。这是我现在的代码:-(void)glkViewControllerUpdate:(GLKViewController*)controller{//staticfloattransY=0.0f;//floaty=sinf(transY)/2.0f;//transY+=0.175f;GLKMatrix4modelview=GLKMatrix4MakeTranslation(0,0,-5.f);e

ios - 避免纹理切换(openGL es 2.0)

我正在为IOS开发小型2d渲染引擎。我想渲染许多位于不同纹理中的Sprite。现在这听起来很简单......只需渲染属于相同纹理的所有Sprite并移动到下一个......但是如何处理具有不同纹理的图元重叠?我想以与图片完全相同的方式渲染它们(重叠)。这意味着我需要切换纹理三次。如果我有数百个这样的混合Sprite怎么办?为了避免在客户端切换纹理并一次渲染所有Sprite。我在片段着色器中使用以下代码:if(txt>=0.5)gl_FragColor=texture2D(texture1,texCoords)*clr;if(txt>=1.5)gl_FragColor=texture2D

iphone - 使用多个顶点和索引缓冲区对象进行渲染(ios - OpenGLES 2.0)

我无法使用一对以上的顶点和索引缓冲区对象来渲染我的所有对象。为了检查所有内容,我只初始化了3个对象并渲染它们。这会导致前两个对象的几何形状变形,而第三个对象的几何形状渲染得很好(不完美)。当我刚刚初始化所有3个但只是首先渲染时,它再次显示扭曲的几何体并且第三个几何体以某种方式更加可见(即使我没有渲染它)。但是,如果我正在初始化和渲染它们中的任何一个,它就会渲染得很好(完美)。这是我的代码:floattempAngles[4]={0,60,180,360};pieOne=[[IVNodealloc]initWithPieGeometry:0.75thickness:0.20startAn

iphone - OpenGl ES 2.0 和 GLKit : From GLKBaseEffect shaders to OpenGl

我正在使用OpenGLES2.0和GLKit编写2D游戏。我的架构基于IanTerrel的游戏教程。我最近发现GLKBaseEffect(提供简单的着色器管理)泄漏,有时会使我的应用程序崩溃。我现在正在使用我自己的着色器文件(基于RayWenderlich教程),但此时,我刚刚成功显示了openGl背景色。我的形状颜色和纹理不再显示。重要:我错误地设置了当前上下文,现在openGL显示无效Drawable。这是我的shape.m代码的一部分:@implementationP3ShapeconstGLushortindices[]={0,1,2,3};typedefstruct{floa

objective-c - OpenGL ES 混合功能,因此颜色始终显示在背景上

我正在使用OpenGLES1.1在我的iPad应用程序中绘制线条。我想确保无论背景颜色如何,绘制的线条在屏幕上始终可见,并且不允许用户选择颜色。是否有混合功能可以产生这种效果?因此,所绘制线条的颜色将根据其下方已绘制的颜色而变化,因此始终可见。 最佳答案 遗憾的是,将片段最终混合到帧缓冲区中仍然是固定功能。此外glLogicOp没有在ES中实现,所以你不能做一些像XOR绘图这样便宜的事情。我认为最终效果是:您希望输出颜色是帧缓冲区中已有颜色的自定义函数;但帧缓冲区无法在着色器中读取(它会破坏管道并导致并发问题)。因此,您将不得不实现

Maven 项目中为什么Junit之@Test 单元测试无法使用

前言由于框架项目的使用,会有很多模块,所以Junit中的@Test注解是我们比较常用的注解,但是有些小问题我们需要注意在创建完Maven项目后,我们通常呢会导入以下这样的依赖包: !--juit单元测试-->dependency>groupId>junit/groupId>artifactId>junit/artifactId>version>4.6/version>scope>test/scope>/dependency>但是我们这时候去代码中使用@Test,会出现报红,这是为什么呢?🤨这里先说明下,org.junit是导入的版本4.xx的unit,报红信息如下,alter+return提

JUnit5单元测试提示“Not tests were found”错误

JUnit5单元测试提示“Nottestswerefound”错误,如下图所示:或者问题解析:1)使用@Test注解时,不能有返回值;2)使用@Test注解时,不能使用private关键字;存在以上情况时执行单元测试,都会提示“Nottestswerefound”错误,如下图所示:正确的示例是使用publicvoid关键字定义方法,如下图所示:再次执行单元测试成功了,如下图所示:“TestHello!”信息打印输出成功。