- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Cheetah3D 导出 COLLADA 文件 ( .dae ),然后使用 Erik Buck 的 COLLADAViewer2 ( https://github.com/erikbuck/COLLADAViewer2/tree/master/COLLADAViewer2 ) 程序导出 modelplist 格式,如他的书中所述。
我的 COLLADA 文件是一个简单的球体,我正在尝试在其上渲染地球纹理。
在COLLADAViewer程序中,我导出的.dae文件看起来不错,这是一个屏幕截图:
用于在球体上渲染纹理的代码部分位于此处:
// Setup texture
CGImageRef imageRef =
[[UIImage imageNamed:@"Earth.jpg"] CGImage];
GLKTextureInfo *textureInfoEarth = [GLKTextureLoader
textureWithCGImage:imageRef
options:[NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
GLKTextureLoaderOriginBottomLeft, nil]
error:NULL];
self.baseEffect.texture2d0.name = textureInfoEarth.name;
self.baseEffect.texture2d0.target = textureInfoEarth.target;
// Enable fragment blending with Frame Buffer contents
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
不幸的是,在 XCode 中,当我构建并运行我的球体时,它在模拟器上看起来像这样:
我不知道如何解释球体上的奇怪图案,就像纹理在那里但被重复一样。谁能帮我解决这个问题吗?谢谢-
我将正在试验的 xcode 项目上传到了 Github。它使用了 Buck 先生的 OpenGL 书中的大量示例代码。
最佳答案
在我看来,模型中每个三角形的纹理坐标都是相同的。
看看你的代码,我认为你的顶点缓冲区的格式是每个顶点 40 字节,每个值都是 GLFloat
两个字节,3 表示位置,3 表示法线,2 表示纹理坐标,2 表示第二组纹理坐标。
我运行了该应用程序,在填充 UtilityMesh
中的数据后设置了一个断点。目的。看看调试器中的数据转储,有一个明确的模式,每 40 个字节重复一次。位置和法线的前 24 个字节按预期变化。最后八个字节始终为 0,我认为这对应于未使用的第二组纹理坐标。问题在于与主纹理坐标对应的八个字节循环通过三个值。
00000000 00000000
0000003d 0000803d
00000000 0000803d
所以我认为你的程序很好,只是得到了坏数据。检查您的转换过程。
关于iPhone OpenGL ES 2.0 奇怪的图案在 COLLADA 文件中渲染球体纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149732/
我有一个未定义数量的显示上下文,每个都将显示一个纹理。当我调用 glGenTextures 时,我会在所有显示上下文中返回相同的名称。这会起作用吗?即使它们具有相同的名称,它们仍会存储和显示不同的纹理
我在 SVG 中看到过:文本填充是图像而不是颜色;我一直想知道使用 CSS3 是否可以实现这样的事情。 我浏览了整个网络,到目前为止只找到了基本上将图像覆盖在文本上的解决方法(请参阅 this ,这对
我是 WebGL 的新手。 :)我知道顶点数据和纹理不应该经常更新,但是当它们确实发生变化时,首选哪个:- 通过调用 gl.deleteBuffer 销毁先前的缓冲区 (static_draw) 并创
我需要将 GL_RGBA32F 作为内部格式,但我在 OpenGL ES 实现中没有得到它。相反,我只得到 GL_FLOAT 作为纹理数据类型。 OES_texture_float 规范没有说明里面的
当我执行某些几何体的渲染时,我可以在控制台中看到此警告: THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter sho
我正在尝试使用阴影贴图实现阴影,因此我需要将场景渲染到单独的帧缓冲区(纹理)。我无法让它正常工作,因此在剥离我的代码库后,我留下了一组相对简单的指令,这些指令应该将场景渲染到纹理,然后简单地渲染纹理。
我在 XNA 中使用带有自定义着色器的标准 .fbx 导入器。当我使用 BasicEffect 时,.fbx 模型被 UV 正确包裹并且纹理正确。但是,当我使用我的自定义效果时,我必须将纹理作为参数加
如果我创建一个 .PNG 1024 x 1024 的纹理并在中间画一个 124 x 124 的圆,它周围是空的,它使用的 RAM 量是否与我画一个 124 x 的圆一样124 x 124 空间上的 1
我试图在 Android 中绘制一个地球仪,为此我使用了 OpenGL。然而,为了让它更容易理解,我将从制作一个简单的 3D 立方体开始。我使用 Blender 创建我的 3D 对象(立方体),并在我
文本本身的背景图像层是否有任何 JS/CSS 解决方案? 示例 最佳答案 检查这个http://lea.verou.me/2012/05/text-masking-the-standards-way/
非功能代码: if sprite.texture == "texture" { (code) } 当 Sprite 具有特定纹理时,我正在尝试访问 Sprite 的纹理以运行代码。目前纹理仅在我的
我正在尝试学习适用于 iOS 的 SceneKit 并超越基本形状。我对纹理的工作原理有点困惑。在示例项目中,平面是一个网格,并对其应用了平面 png 纹理。你如何“告诉”纹理如何包裹到物体上?在 3
基本上, 这有效: var expl1 = new THREE.ImageUtils.loadTexture( 'images/explodes/expl1.png' ); this.material
我正在尝试将各种场景渲染为一组纹理,每个场景都有自己的纹理到应该绘制的位置...... 问题: 创建 512 个 FBO,每个 FBO 绑定(bind)了 512 个纹理,这有多糟糕。只使用一个 FB
我正在使用文本 protobuf 文件进行系统配置。 我遇到的一个问题是序列化的 protobuf 格式不支持注释。 有没有办法解决? 我说的是文本序列化数据格式,而不是方案定义。 这个问题是有人在某
我想将我的 3D 纹理的初始化从 CPU 移到 GPU。作为测试,我编写了一个着色器将所有体素设置为一个常数值,但纹理根本没有修改。我如何使它工作? 计算着色器: #version 430 layou
我可以像这样用 JavFX 制作一个矩形: Rectangle node2 = RectangleBuilder.create() .x(-100) .
我在 iPhone 上遇到了 openGL 问题,我确信一定有一个简单的解决方案! 当我加载纹理并显示它时,我得到了很多我认为所谓的“色带”,其中颜色,特别是渐变上的颜色,似乎会自动“优化”。 只是为
假设我有一个域类 class Profile{ String name byte[] logo } 和一个 Controller : class ImageController {
我正在开发一款使用 SDL 的 2D 游戏。由于某些系统的 CPU 较弱而 GPU 较强,因此除了普通的 SDL/软件之外,我还有一个使用 OpenGL 的渲染器后端。 渲染器界面的简化版本如下所示:
我是一名优秀的程序员,十分优秀!