终于搞定了OES_Matrix_Palette

本文介绍如何在JOGL平台上为POWERVR的POD模型添加骨骼支持,并通过软件实现在不支持OES MatrixPalette扩展的环境中运行。此外,还提到了作者对于尝试3dsmax SDK的兴趣。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

POWER VR的POD模型是支持骨骼的,但所有的例子里,实现骨骼的代码都是使用OES的Matrix Palette扩展,这在标准的桌面OPENGL,以及iphone模拟器里,和很多OGL ES里,都是不支持的,因此,如果需要在PC平台使用Matrix Palette,就需要软件实现之

 

现在我是在JOGL平台上实现的,基本上是参照上一篇BLOG和小亮的例子写的,然后扩展了weight,

有点麻烦的是,如果POD是interleaved格式的话,需要先把数据分离出来

 

Anyway,现在PC上可以支持带骨骼的POD了

 

老狼写了一个很好的3ds max plugin开发教程,搞得我心痒痒的,想碰一下一直不敢碰的3ds max sdk。。

写个简单的场景Node导出插件总该可以吧,呵呵

### 关于 R_ID_PALETTE_DimGray 的定义与使用 #### 定义 `R_ID_PALETTE_DimGray` 并不是一个标准的 R 或 Python 颜色名称,而更可能是某个特定软件或库中自定义的颜色标识符。通常情况下,这种命名模式可能出现在图形界面开发工具(如 Qt、MFC 等)或者某些绘图框架中[^4]。 在这些环境中,`DimGray` 是一种常见的颜色名称,在 RGB 色彩空间中的表示为 `(105, 105, 105)`,即暗灰色的一种具体定义[^1]。如果 `R_ID_PALETTE_DimGray` 出现在某种上下文中,则它很可能是用于映射到该颜色的一个唯一 ID 或枚举值。 #### 使用方法 假设 `R_ID_PALETTE_DimGray` 来源于一个 GUI 应用程序的资源管理器或调色板系统,其典型用途包括但不限于以下场景: 1. **作为颜色索引** 如果应用程序维护了一个全局颜色表(Color Palette),那么可以通过 `R_ID_PALETTE_DimGray` 这样的常量快速访问对应的色彩值。例如: ```cpp QColor getColorFromPalette(int id) { switch (id) { case R_ID_PALETTE_DimGray: return QColor(105, 105, 105); default: return Qt::black; } } ``` 2. **动态绘制** 在需要频繁更新 UI 组件背景色或其他视觉属性的情况下,可以直接通过这个 ID 设置目标组件的颜色。比如在一个基于 Qt 的应用中: ```cpp void setWidgetBackgroundColor(QWidget* widget, int paletteId) { if (paletteId == R_ID_PALETTE_DimGray) { widget->setStyleSheet("background-color: rgb(105, 105, 105);"); } else { widget->setStyleSheet(""); } } ``` 3. **配置文件解析** 当从 INI 文件或者其他形式的外部配置读取主题信息时,可能会遇到类似的键名绑定逻辑。例如: ```ini [Colors] Background=R_ID_PALETTE_DimGray Foreground=White ``` 解析这段配置后,可以根据键值找到实际使用的颜色[^2]。 #### 注意事项 由于缺乏具体的环境描述,以上分析仅提供一般性的指导方向。对于确切含义及其适用范围,请进一步确认所涉及的技术栈以及文档说明。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值