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
1天前
浏览
收藏 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
微信
回复
23h前
相关问题
使用Native、XComponent和EGL绘制图形
1010浏览 • 1回复 待解决
HarmonyOS Canvas中关于绘制图问题
406浏览 • 1回复 待解决
画布上绘制图片如何实现?
356浏览 • 1回复 待解决
XComponent、openGL实现3D图形绘制
1736浏览 • 1回复 待解决
XComponent使用OpenGl ES
1139浏览 • 1回复 待解决
HarmonyOS OPENGL ES外部纹理使用
326浏览 • 1回复 待解决
HarmonyOS OpenGL 绘制的相关资料
3浏览 • 0回复 待解决
使用Drawing实现图形绘制与显示
919浏览 • 1回复 待解决
XComponent、NativeDrawing实现2D图形绘制
1166浏览 • 1回复 待解决