`
娜娜娜娜娜0211
  • 浏览: 1189 次
  • 性别: Icon_minigender_2
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

WorldWindJava 编译出错问题的解决

    博客分类:
  • java
wwj 
阅读更多
第一天 

  研究了好几天的worldwindjava,从网上下载的包放到工程里面,运行的时候就开始报错,一开始以为是没有联网的数据不能下载的问题,后来配置了本地数据后还是报同样的错误,错误是报各种方法无用,例glclientActive Texture not available。后来google了一下,有人说是分辨率要设置为32位color,但是由于我使用的虚拟机无法设置,咨询相关人士后,说我的机器目前的xp系统不支持3D编程,要换成win7就可以了,因为win7支持DirectX,最后还是换系统啦,希望这次能成功! !


第二天
    昨天换了win7系统后,仍然报错,虽然错误不同,但是已经明确指出是由于显卡不兼容的问题:javax.media.opengl.GLException: DXTn compressed textures not supported by this graphics card。这个问题在葡萄牙的一个介绍worldwindjava的网站上说是由于显卡不兼容或者是驱动程序的更新问题。同时,由于我目前使用的是虚拟机,可能也存在一个虚拟机是否支持3D问题,但是已经在虚拟系统启动后点开始----运行:输入Dxdiag中,调用DirectX诊断工具诊断过,确实开启了3D加速功能,而且主驱动也是支持3D,难道真的是驱动升级问题。目前正在继续研究。

第三天

      一直认为是虚拟机不支持3D编程,于是今天换了一个实体机,一切正常可以,终于看到了地球,非常激动。正准备开始编程了,高手突然告诉我虚拟机上的问题解决了,是由于虚拟机不支持采用DXT1-DXT5模式的影像数据渲染,只需要将图层中的dds格式图片换成jpg或者png格式的就可以显示了。于是我先找到了worldwindjava文件下的src->images文件夹,这里存放了worldwidjava用到的所有图片,我发现地球图片以及鹰眼等dds文件格式的图片,worldwindjava也对应提供了jpg和png格式,然后通过eclipse中的search工具找到了设置图片路径的具体位置,将dds改为了对应的其他格式,例如地球上的图片是在gov.nasa.worldwind.layers.Earth包中的BMNGOneImage.java中设置的,将该文件中的IMAGE_PATH变量的值由原来的“images/BMNG_world_topo.bathy.200405.3.2048*1024.dds”改成了“images/BMNG_world_topo.bathy.200405.3.2048*1024.jpg”,这里注意可能每个文件名不同,但我只是改了后面的扩展名,文件名没有变的。然后再运行,地球图片就出来了。按照同样的方法我修改了WorldMap和Compass的图片路径中的扩展名,这里需要注意的是修改后的图片路径必须在images文件夹中确实存在。再次运行,就没有再报错了,而且显示也都正常了。



由于这是第一次接触3d相关的编程,所以对于dds文件不是很熟悉,特意查了一下:

DDS是一种图片格式。DirectDraw Surface的缩写,它是DirectX纹理压缩(DirectX Texture Compression,简称DXTC)的产物。
格式介绍
  有3种DXTC的格式可供使用,分别是DXT1,DXT3和DXT5。
  DXT1 压缩比例:1:8 压缩比最高,它只有1Bit Alpha,Alpha通道信息几乎完全丧失。一般将不带Alpha通道的图片压缩成这种格式。如Worldwind 用的卫星图片。
  DXT3 压缩比例:1:4 使用了4Bit Alpha,可以有16个Alpha值,可很好地用于alpha通道锐利、对比强烈的半透和镂空材质。
  DXT5 压缩比例:1:4 使用了线形插值的4Bit Alpha,特别适合Alpha通道柔和的材质,比如高光掩码材质。
格式应用
  许多3D软件包括大部分游戏都用dds格式,又称“贴图”,许多fans通过修改dds文件可以生成特殊显示效果。nVidia提供了PhotoShop使用dds的插件,通过该插件也可以生成dds文件。

   现在终于明白了,“DXTn compressed textures not supported by this graphics card“的错误的意思,笼统的说,就是我的虚拟机显卡不支持DXT1-DXT5模式的压缩影像数据的渲染。所以只要是加载dds格式的图片都会报这个错误,并且显示不出来。
分享到:
评论

相关推荐

    busybox编译出错的解决方法

    针对前几天,用busybox编译根文件的时候,碰到的问题和解决方法进行总结

    3DSlicer编译遇到的问题及解决办法

    总之,3DSlicer的编译过程中可能会遇到多种问题,但通过理解其依赖关系、正确配置环境、及时更新资源以及详细阅读编译问题汇总文档,开发者可以有效地解决问题,成功完成编译。在这个过程中,耐心和细心是必不可少的...

    解决在练习gallery时编译出错的问题

    题目中提到的标签“源码”提示我们可能需要深入到代码层面来解决问题。理解代码的逻辑,找出可能引发编译错误的部分,进行调试或修改。 7. **使用版本控制**: 如果你使用版本控制系统(如Git),可以回退到之前...

    Android 编译出错版本匹配问题解决办法

    "Android 编译出错版本匹配问题解决办法" Android 编译出错版本匹配问题解决办法是 Android 应用程序开发中常见的问题之一。该问题的解决方案主要涉及到三个参数的版本匹配:compileSdkVersion、targetSdkVersion ...

    C语言 编译出错信息一览表

    在C语言编程中,编译出错信息是程序员在开发过程中必须面对的重要部分。了解这些错误类型和如何解决它们对于提高编程效率至关重要。本篇主要介绍C语言编译过程中的三类错误:严重错误、一般错误和警告。 1. 严重...

    DELPHI编译出错borlndmm

    总的来说,理解和解决"DELPHI编译出错borlndmm"问题需要对Delphi的内存管理和项目配置有深入的了解。通过细心的排查和使用合适的工具,大部分问题都可以得到解决。同时,不断学习和掌握Delphi的最佳实践,将有助于...

    编译OpenCV 缺少boostdesc_bgm.i文件出错的解决

    编译OpenCV以及openc_contrib提示缺少boostdesc_bgm.i文件出错的解决 总共以下几个文件,都需要拷贝: path: /home/ming/opencv-4.1.0/.cache/xfeatures2d/boostdesc boostdesc_bgm.i boostdesc_bgm_bi.i ...

    Ubuntu 64 位编译Android源码出错解决办法

    这将安装支持多种架构的C++编译器组件,有助于解决跨平台编译中的常见问题。 ### 错误三:`external/clearsilver/cgi/cgi.c:22: fatal error: zlib.h: No such file or directory` #### 解决方案: 缺失`zlib.h`...

    delphi7 编译死机解决办法

    4. 重启 Delphi 7,然后尝试编译之前导致死机的项目,看是否解决问题。 需要注意的是,这种做法虽然在很多情况下都能解决问题,但并非总是万无一失。因为不同版本的 DLL 文件可能存在兼容性问题,可能会引入新的...

    ffmpeg编译过程出错总结.zip_ffmpeg_ffmpeg 编译_ffmpeg编译总结

    当编译出错时,务必详细阅读编译输出的错误信息。通常,错误信息会指出问题所在行以及可能的原因。根据这些信息定位问题并修复。 在编译FFmpeg时,耐心和细致是关键。每个错误都是一个学习的机会,通过理解错误...

    myeclipse无法自动编译的解决方法

    本文将总结 MyEclipse 无法自动编译的解决方法,帮助开发者快速解决问题,提高开发效率。 1. 确保项目的自动编译选项已经被选上 在项目的 Properties 中,确保 "Build Automatically" 选项已经被选上。如果该选项...

    Telegram编译以及问题解决(包含QT5.3.1编译)

    Telegram是一个开源的IM,界面效果极好,Win8风格设计。我把它编出来了,期间遇到很多问题,记录下来了解决方法。里面还包含QT5的编译(没有完整编出来,但是主要的QT库都有了)。

    TIA博途 Wincc的触摸屏编译时报错,编译失败,请联系SIEMENS客户支持部门_解决办法汇总.docx

    首先,方法1是通过添加相同型号的触摸屏来解决问题。步骤包括在当前项目中添加一个新的同型号设备,无需对其进行任何配置。然后,在项目树中选择新添加的设备,右键点击并选择“编译”>“软件(全部重建)”,完成后...

    ROS noetic MoveIt编译出错,提示缺少软件包"manipulation_msgs"

    在本问题中,我们聚焦于一个特定的场景:在ROS Noetic中尝试编译MoveIt时遇到的错误,提示缺少"manipulation_msgs"软件包。 MoveIt是ROS中的一个核心组件,专门用于机器人运动规划、模拟和控制。它包含了一系列用于...

    编译出错可以参考本文

    5. **编译器版本或配置问题**:不同版本的编译器对预编译头文件的支持有所不同,有时特定版本的编译器可能会存在兼容性问题。 #### 四、解决方法 针对上述可能出现的问题,下面提供一些解决步骤: 1. **确认预...

    牛人总结Linux下PHP编译安装各种出错及解决方法

    在Linux环境下,PHP的...在提供的PDF文件【美河学习在线eimhe.com]Linux下PHP编译安装各种出错及解决方法.pdf】中,可能包含了更详细的操作步骤和实例解析,建议仔细阅读,以深入了解和掌握Linux下PHP编译安装的技巧。

    c语言中常见编译错误信息

    这些错误通常是内部编译出错,编译程序将立即停止,需要采取一些适当的措施并重新编译。 1. Bad call of in-line function:内部函数非法调用。在使用一个宏定义的内部函数时,没有正确调用。一个内部函数以双...

    完美解决matlab2014a-mcc无法编译问题

    完美解决matlab2014a-mcc无法编译问题。 适用于已安装compiler但破解不完全的,下载后解压,把install.jar以及相应位数的三个文件(compiler.dll,mcc.exe,libmwservices.dll)复制到对应位置替换即可,另外把...

    vs2008 编译出错修正

    vs2008(Visual studio 2010) 编译出错修正

    DELPHI7编译出错提示内存:RLINK32.dll出错

    delphi7编译慢 或linking阶段会出错 经常会出现内存泄漏或不足 或RLink32.DLL访问出错 直接把bolndmm.dll与rlink32.dll拷贝至delphi7下的bin目录中可以调试了 按网友的说法 新版的内存管理器或连接器 bolndmm.dll...

Global site tag (gtag.js) - Google Analytics