草庐IT

textures

全部标签

c++ - 在着色器中同时在同一纹理单元中使用不同的纹理类型

当我尝试在我的着色器中对不同的纹理类型(即普通2D纹理和立方体贴图)使用相同的纹理单元(编号0)时,我在我的程序中遇到了一个棘手的问题。看起来GL在第一次glDrawArrays调用后发出502H(无效操作)。在我的应用程序代码中,我将纹理加载到不同的纹理目标:voidsetup_textures(){unsignedintwidth,height;intcomponents;unsignedintformat;floatparam[8];vectorpngData;GLenumtexture_target;glGenTextures(2,textures);glGetFloatv(G

【Unity3D】纹理贴图 ( 纹理 Texture 简介 | 为 3D 模型设置纹理贴图 )

文章目录一、纹理Texture简介二、为3D模型设置纹理贴图一、纹理Texture简介上一篇博客【Unity3D】材质Material(材质简介|创建材质|设置材质属性|对3D物体应用材质|资源拖动到Inspector检查器中的Material属性中)使用了材质来对物体表面进行渲染,只能进行纯色渲染,实际的物体很少有纯色的,大部分的3D物体渲染都需要使用图片进行渲染,这里引入纹理Texture;纹理Texture用于覆盖在3D物体上,其本质是一张图片,用于替代物体上渲染的颜色;网格Mesh只能表示3D模型的形状,材质Material只能进行3D模型的纯色渲染,纹理Texture可以进行3D模型

c++ - OpenGL,着色器模型 3.3 纹理 : Black Textures?

几个小时以来,我一直在努力解决这个问题,我确信这很简单,但我就是得不到结果。我不得不稍微编辑一下这段代码,因为我构建了一个小库来封装OpenGL调用,但以下是对事态的准确描述。我正在使用以下顶点着色器:#version330invec4position;invec2uv;outvec2varying_uv;voidmain(void){gl_Position=position;varying_uv=uv;}以及以下片段着色器:#version330invec2varying_uv;uniformsampler2Dbase_texture;outvec4fragment_colour;v

c++ - 使用 OpenCV 为 OpenGL 加载纹理

我看过很多为OpenGL加载纹理的代码示例,其中许多代码示例有点难以理解或需要大量代码的新功能。我在想,因为OpenCV允许我们加载任何图像格式,所以它可以是将纹理加载到OpenGL的一种简单有效的方法,但我遗漏了一些东西。我在c++中有这段代码:cv::Mattexture_cv;GLuinttexture[1];intStatus=FALSE;if(texture_cv=imread("stones.jpg")){Status=TRUE;//SetTheStatusToTRUEglGenTextures(1,&texture[0]);//CreateTheTextureglBind

c++ - glColor 着色所有纹理

我是OpenGL的新手,所以也许答案很明显。我目前正在尝试在C++中使用GL_TRIANGLE_FAN制作一个蓝色圆圈。我的问题是,当我使用glColor4f设置颜色时,它会将我所有其他纹理设置为蓝色,如下所示(这应该是银色金属)。我使用下面显示的方法绘制纹理。glLoadIdentity();glTranslatef(x,y,0);glBindTexture(GL_TEXTURE_2D,this->texture);glBegin(GL_QUADS);glTexCoord2f(0.0f,0.0f);glVertex3f(0,0,0);glTexCoord2f(1.0f,0.0f);g

ios - Texture ASButtonNode,如何在文字右边设置图片

这样可以自定义标题和图片的距离 最佳答案 你可以使用ASOverlayLayoutSpec。像这样。------------ASOverlayLayoutSpec------------|-ASInsetLayoutSpecASInsetLayoutSpec|||ASButtonNode||ASImageNode|||-----------------------------------|-------------------------------------------引用http://texturegroup.org/docs

ios - 在多个对象上渲染多个纹理的问题

我正在尝试渲染两个对象-(void)glkView:(GLKView*)viewdrawInRect:(CGRect)rect方法,我正在尝试为这两个对象绑定(bind)单独的纹理。对于第一个对象,下面是纹理绑定(bind)代码/*************texturebindingforobject1****************/glActiveTexture(GL_TEXTURE0);err=CVOpenGLESTextureCacheCreateTextureFromImage(kCFAllocatorDefault,_videoTextureCache,pixelBuffe

ios - 从 Spritekit 纹理图集中加载纹理的最高效方法

我想不出如何在短短几秒钟内加载我的纹理。一个怪物需要20多秒。最初我在单独的纹理图集中制作动画。它们的名称类似于sprite_002@2x~iphone.png。当它们分开时,我使用了类似于Apple文档中的代码:SKTextureAtlas*atlas=[SKTextureAtlasatlasNamed:@"monster"];SKTexture*f1=[atlastextureNamed:@"monster-walk1.png"];SKTexture*f2=[atlastextureNamed:@"monster-walk2.png"];SKTexture*f3=[atlastex

使用 GL_TEXTURE_2D 的 iOS YUV 420v 在 OpenGL 着色器中显示错误的颜色

目标:使用GL_TEXTURE_2D而不是CVOpenGLESTextureRef将YUV数据(格式为“420v”kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange)推送到着色器(为什么?因为我需要使用glTexSubImage2d来操作像素,而且我不能在目标为CVOpenGLESTextureGetTarget()时使用它,所以它没有效果。我必须使用GL_TEXTURE_2D)问题:我正在使用自定义视频合成器来操作AVPlayer视频。当我像Apple的AVCustomEdit示例代码一样使用CVOpenGLESTextureRef时,它使

ios - WebGL:OES_texture_float 是否需要存储为 32 位 float ?有些设备似乎只存储为半 float

如果设备支持OES_texture_float,则FLOAT纹理应存储为32位浮点值,accordingtothespec.但是,在某些设备上,纹理似乎存储为半float。以下代码创建一个包含值Pi的1x1浮点纹理。片段着色器对纹理进行采样并将结果与​​Pi的32位float和16位float(即半float)表示进行比较。着色器为32位返回绿色,为16位返回红色。"usestrict";constcanvas=document.getElementsByTagName("canvas")[0];constgl=canvas.getContext("webgl");if(!gl.get