草庐IT

GL_DEPTH_BUFFER_BIT

全部标签

iOS/Metal : how to read from the depth buffer at a point?

我想从深度缓冲区中读取。在OSX上的GL中我可以这样做:floatdepth[2][2];//get2x2forbilinearinterpolationglReadPixels(s.x,s.y,/*width*/2,/*height*/2,GL_DEPTH_COMPONENT,GL_FLOAT,depth);(请注意,使用iOS上的OpenGLES时,您无法从深度缓冲区中读取数据)Metal的等价物是什么?看起来我需要做:_renderPassDescriptor.depthAttachment.storeAction=MTLStoreActionStore;然后以某种方式通过CPU

ios - 您如何使用 Open GL ES 2.0(着色器)进行视频处理?

这个问题是关于iOS的。在Android上,使用OpenGLES2.0在View上渲染纹理(用于预览)或将其发送到编码器(用于文件写入)非常容易。我一直没能在iOS上找到任何使用着色器效果实现视频播放(从文件预览视频效果)和视频录制(保存带有效果的视频)的教程。这在iOS上可行吗?我遇到了一个关于着色器的演示,名为GLCameraRipple但我不知道如何更一般地使用它。例如:使用AVFoundation。[编辑]我践踏了thistutorialaboutOpenGLES,AVFoundationandvideomergingoniOS在搜索片段时。这是另一个有趣的入口。

swift - 如何在 ARKit 3.0 中启用 `Depth of Field` 选项?

在ARKit3.0中demoApple提出了depthoffield效果。我试图找到这方面的文档,但找不到我们应该如何启用它。我发现启用motionblur很容易和noisegrain效果。基本上,您可以在Objective-C中像这样设置一个标志scnview.rendersMotionBlur=true;但我找不到景深效果。这东西还没有暴露给开发者吗? 最佳答案 景深是RealityKit和SceneKit框架的后处理渲染器功能。ARKit中没有景深,因为ARKit不负责渲染。在RealityKit中,景深默认开启DepthOf

ios - 打断一个32bit的整数,用后半部分16bit组成一个int

我正在制作一个从服务器下载32位整数的应用程序,并将前16位和第二个16位用于不同的目的...我负责第二个16bit,应该用来组成一个int,我知道我应该用位运算来做这个,但是无法实现,下面是我正在使用的代码,请给我更多信息.//CIDisa32bitinteger,innslogitshowsas68913219-itsdifferentforeveryuserBytelowByte=(CID>>16)&0xFF;//the3rdbyteBytehighByte=(CID>>24)&0xFF;//the4thbyteuint16_tvalue=lowByte&highByte;//c

ios - 为什么将 GL_ELEMENT_ARRAY_BUFFER 绑定(bind)到 0 会产生内存移动错误?

我有一个错误,我花了很长时间才修复。在我评论以下行之前,我一直收到EXC_BAD_ACCESS和对memmove错误的引用而没有任何进一步的描述:[自加载着色器];glGenVertexArraysOES(1,&_vao);glBindVertexArrayOES(_vao);//VertexBufferglGenBuffers(1,&_vertexBuffer);glBindBuffer(GL_ARRAY_BUFFER,_vertexBuffer);glBufferData(GL_ARRAY_BUFFER,sizeof(Vertices),Vertices,GL_STATIC_DRA

ios - iPad 缺少 OpenGL 扩展字符串 GL_APPLE_texture_2D_limited_npot

在我的iOS游戏中,我想在可用时使用GL_APPLE_texture_2D_limited_npot扩展来节省内存(游戏有NPOT纹理,在我当前的实现中,我添加了一些填充来使它们成为2的幂)。我正在我的iPad(第一代)上进行测试。到目前为止我读到的所有内容都表明所有支持OpenGLES2的iOS设备(包括iPad)也支持GL_APPLE_texture_2D_limited_npot(这非常好,因为我的游戏使用OpenGLES2)。我已经在我的iPad上进行了测试,它确实支持(如果我将wrap设置为GL_CLAMP_TO_EDGE,我删除了填充并且图像可以工作),但是当我调用glGe

c++ - 当我在我的 xcode 项目中使用 #include <OpenGL/gl.h> 行时,它在哪里寻找 gl.h 文件?

我正在将Linux的开源C++程序移植到OSX。我一直在改变这行#include对此#include基于这篇文章的建议:HowdoIuseOpenGLinaC++projectthatIamportingfromLinux该更改消除了编译器错误,但我很困惑:xcode/它使用的C++编译器在哪里查找该文件?如果我搜索我的xcode项目,我没有看到名为OpenGL的目录或文件=gl.h?我习惯于根据.html文件的工作目录在网页中包含图像或javascript库。xcode中发生了其他事情。 最佳答案 在Mac上,您将从OpenGL框

iphone - 关于 AudioQueue : request to trim 0 + 1676 = 1676 frames from buffer containing 1152 frames 的 XCODE AVAudioPlayer 错误

我试图在不同的时间播放不同的声音。基于按钮按下或定时器超时等。这是代码。播放声音函数:-(void)myPlaySound:(NSString*)mySoundFileNumberOfLoops:(int)loopsCountofType:(NSString*)fileType{NSURL*musicFile=[NSURLfileURLWithPath:[[NSBundlemainBundle]pathForResource:mySoundFileofType:fileType]];myAudio=[[AVAudioPlayeralloc]initWithContentsOfURL:m

ios - iOS OpenGL ES 3.0 上缺少 GL_GEOMETRY_SHADER

我正在将我的引擎移植到iOS,但出现错误'GL_GEOMETRY_SHADER'undefined我正在使用iOS8SDK和OpenGL3.0;设备是iPhone5s。还有其他选择吗?或者如何访问几何着色器? 最佳答案 OpenGLES中没有几何着色器,无论是3.0还是3.1。有一个extension,它基于ES3.1。由于iOS目前不支持3.1,因此该扩展程序当然无法在iOS上使用。替代品?如果你真的需要几何着色器,基于Android的设备总是一个选择。:)几何着色器是ES3.1的Android扩展包的一部分,它是Google鼓励

显示器10bit

显示器的参数有面板材质、屏幕比例、响应时间、刷新率、分辨率、色域等。 显示器bit是什么意思?越大越好吗?我们知道显示器的色彩能力主要是三个参数决定的,分别为色准、色域以及色深。色准:色准指的是显示器的色彩准确度;色域:色域指的是显示器的色彩丰富度;色深:色深指的是显示器的色彩过渡流畅度,而显示器的Bit值,例如6Bit、8Bit、10Bit,其实就是“色深”参数,它指的是色彩的层次,例如8bit表示256灰阶,而10bit表示1024灰阶,灰阶级数越多表示颜色越精细,色彩过渡更为均匀。显示器Bit值越大越好,越大意味着显示器才能拥有更鲜明的色彩层次,也更容易分辨出相近的颜色。 显示器怎么将数