- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 assimp 的 LWJGL 3 版本,并且我在加载模型时遇到了困难。我遇到的问题是加载纹理的实际像素数据。使用AIMaterial对象加载这些纹理的过程是怎样的?
最佳答案
当我进行快速演示测试时,我只使用了 Java 中的常规图像 IO。它并不那么花哨,但它确实有效,并且可能会让您继续前进:
public static ByteBuffer decodePng( BufferedImage image )
throws IOException
{
int width = image.getWidth();
int height = image.getHeight();
// Load texture contents into a byte buffer
ByteBuffer buf = ByteBuffer.allocateDirect(
4 * width * height );
// decode image
// ARGB format to -> RGBA
for( int h = 0; h < height; h++ )
for( int w = 0; w < width; w++ ) {
int argb = image.getRGB( w, h );
buf.put( (byte) ( 0xFF & ( argb >> 16 ) ) );
buf.put( (byte) ( 0xFF & ( argb >> 8 ) ) );
buf.put( (byte) ( 0xFF & ( argb ) ) );
buf.put( (byte) ( 0xFF & ( argb >> 24 ) ) );
}
buf.flip();
return buf;
}
图像作为另一个例程的一部分加载的位置:
public Texture(InputStream is) throws Exception {
try {
// Load Texture file
BufferedImage image = ImageIO.read(is);
this.width = image.getWidth();
this.height = image.getHeight();
// Load texture contents into a byte buffer
ByteBuffer buf = xogl.utils.TextureUtils.decodePng(image);
// Create a new OpenGL texture
this.id = glGenTextures();
// Bind the texture
glBindTexture(GL_TEXTURE_2D, this.id);
// Tell OpenGL how to unpack the RGBA bytes. Each component is 1 byte size
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
// Upload the texture data
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, this.width, this.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, buf);
关于java - LWJGL Assimp : Loading Textures,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43690732/
我尝试加载 gltf 格式的场景。它具有金属和粗糙纹理(未嵌入)。现在我想使用 Assimp 加载具有指定纹理的模型。我使用 GetTexture() 检索纹理,但 aiTextureType 没有粗
我已经从 http://assimp.sourceforge.net/main_downloads.html 下载了 Assimp 项目 Assimp release image assimp zip
assimp 库提供了一种从文件加载 3D .obj 模型的好方法。但是我发现它附带的 assimp_viewer.exe(我使用 3.1.1 版)在导入我的 .obj 文件(42Mb,已经简化)时比
我正在使用 Assimp 将 3D 模型加载到我的程序中。到目前为止,一切都很顺利,除了我遇到了一个似乎没有意义的 Lightwave 对象。当然它在 Lightwave 中渲染得很好,但在 Assi
最近我在做骨骼动画导入,所以我用一些IK技术制作了一个类似Minecraft的3d模型来测试Assimp动画导入。输出格式为 COLLADA(*.dae),我使用的工具是 Blender。在编程方面,
导入网格物体时,我得到了 Material ,但是无法访问纹理的文件名。 .mtl文件显式显示纹理的文件名。在代码中,它的纹理计数为1,但文件名字段显示为空字符串,fullPath输出为“* 0”。在
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
过去几天我一直在尝试使用 assimp 加载我的蒙皮 collada 网格,但我遇到了非常困难的时间。目前我只是试图在没有任何变换或动画的情况下以其正常的“姿势”渲染它,但网格变得非常变形。我认为问题
我正在尝试使用 Assimp(Open Asset Import Library)制作骨骼动画。现在我可以成功加载 .dae 模型并用动画渲染它,但在这样做的过程中模型变得困惑。 http://i.i
我刚刚下载了 assimp 3.0 库并使用 cmake 构建了所需的 make 文件,然后编译并构建了库本身,这个过程是成功的(对 StepFile.h 稍作修改), 我的 assimp 头文件夹位
我刚拿到最后一个assimp SDK,做了一个项目,我正确地链接了它(链接没有错误)但是我似乎在Sample项目上遇到了一些麻烦。更具体地说,是 SimpleOpenGL。我将 C++ 与 OpenG
我正在使用 Assimp 加载我的模型和网格,到目前为止它一直运行良好。我正在尝试从从 blender 导出 .obj 文件时生成的 .mtl 文件加载发射贴图。它加载漫反射贴图、法线贴图和镜面反射贴
我目前正在使用 ASSIMP 库将骨骼动画实现到我的 3D OpenGL 游戏引擎中,不幸的是它并没有那么好。我目前面临的问题是,串联的骨骼变换(骨骼之间的父子关系)只有在只有一个父级被变换时才能正确
我已经使用 Assimp 一段时间了,现在我正在尝试加载一个 .obj 文件。它加载完美,但我想在加载后操作面部数据。 基本上我在简单的 cube.obj 文件中有这个(完整文件 - http://p
我正在做一个项目,我使用 ASSIMP 库导入一个化身的 3D 网格,更新它并使用同一个 ASSIMP 库再次导出更新后的场景。为此,作为第一步,我编写了一段代码来导入场景,并且在不做任何更改的情况下
我正在使用 assimp 在我的游戏引擎中导入 3d 模型。出于某种原因,无论我使用什么模型或模型格式,assimp 都不会报告任何纹理。这是为什么? 以下是使用 assimp 的非常简单的设置: c
我正在使用 Assimp 加载 COLLADA 模型,但是 scene->mMeshes[i]->mName.C_Str() 调用为我返回 "" existing mesh index(当然,"" 不
我最近通过 valgrind 对我的游戏引擎进行了内存泄漏测试;它实际上告诉我,在我的 Mesh 类中有大约 7000 个字节被泄露;奇怪的是它告诉我这个: 7,280 bytes in 1 bloc
我在 Windows 上安装了 Assimp 库,并且喜欢这些文件,然后只是复制粘贴 SimpleOpenGL 示例并删除了结构词(其中大部分)以清除我得到的错误。 现在,我没有任何错误,但是每当我尝
我正在使用 Assimp.net 将动画 .dae 文件导入我的 OpenTK 引擎并努力建立可用的分层骨骼结构。 在 tutorial我正在关注,根骨骼或“关节”包含它的子关节列表,以及它们的子关节
我是一名优秀的程序员,十分优秀!