HarmonyOS opengl es3.0绘制图形颜色有问题

设置颜色为0xFF0051E6,画出来颜色不对,实验过红黄蓝等其它颜色还是正常的。从api10到现在最新的,一直都有这个问题。

https://gitee.com/harmonyos/samples/tree/master/HarmonyOS_NEXT/Native/NdkOpenGL

这个Sample里面我尝试修改了一下颜色,也是一样的结果。

在tetrahedron.cpp里面修改

/* 创建顶点颜色数组colorData */
/atic float g_colorData[] = {
// 1, 0, 0, 1, 0, 0, 1, 0, 0, /* 红色——面1 */
// 1, 0, 0, 1, 0, 0, 1, 0, 0, /* 红色——面2 */
// 1, 0, 0, 1, 0, 0, 1, 0, 0, /* 红色——面3 */
// 1, 0, 0, 1, 0, 0, 1, 0, 0 /* 红色——面4 */
//};

static float g_colorData[] = {
  0.9f, 0.3f, 0, 0.9f, 0.3f, 0, 0.9f, 0.3f, 0,
  0.9f, 0.3f, 0, 0.9f, 0.3f, 0, 0.9f, 0.3f, 0,
  0.9f, 0.3f, 0, 0.9f, 0.3f, 0, 0.9f, 0.3f, 0,
  0.9f, 0.3f, 0, 0.9f, 0.3f, 0, 0.9f, 0.3f, 0
};
HarmonyOS
2024-12-27 16:56:02
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

根据描述0xFF0051E6对应的是下面的值:

static float g_colorData[] = {
  0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f, 0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f, 0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f,
  0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f, 0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f, 0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f,
  0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f, 0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f, 0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f,
  0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f, 0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f, 0x00 / 255.0f, 0x51 / 255.0f, 0xe6 / 255.0f,
};

绘制出来是一个蓝色的立体三角形

此示例中为了实现3D图形的效果为其增加了光照等效果,会对实际色值进行一些处理,因此展示出来的色值与设置的色值不是完全一致。

如需测试色值展示可以使用2D图形示例:

https://gitee.com/openharmony/codelabs/tree/master/NativeAPI/XComponent

分享
微博
QQ
微信
回复
2024-12-27 18:45:34
相关问题
使用Native、XComponent和EGL绘制图形
1455浏览 • 1回复 待解决
HarmonyOS Canvas中关于绘制图问题
624浏览 • 1回复 待解决
画布上绘制图片如何实现?
515浏览 • 1回复 待解决
XComponent、openGL实现3D图形绘制
2319浏览 • 1回复 待解决
HarmonyOS OPENGL ES外部纹理使用
610浏览 • 1回复 待解决
XComponent使用OpenGl ES
1749浏览 • 1回复 待解决
HarmonyOS OpenGL 绘制的相关资料
503浏览 • 1回复 待解决
HarmonyOS opengl怎么绘制中英文
172浏览 • 1回复 待解决
使用Drawing实现图形绘制与显示
1348浏览 • 1回复 待解决