2.x最终照着教程,成功使用OpenGL ES 绘制纹理贴图,添加了灰度图
在之前成功繪制變色的幾何圖形之后,今天利用Openg ES的可編程管線繪制出第一張紋理。
學校時候不知道OpenGL的重要性,怕晦澀的語法。沒有跟老師學習OpenGL的環境配置,現在僅僅能利用cocos2dx 2.2.3 配置好的環境學習OpenGL ES。
源碼來自《cocos2d-x高級開發教程》,凝視是本人的。
要形成屏幕的像素也是個矩形(或者圓形區域)
所以我們僅僅要記住,MaxS是紋理寬度除以對于的屏幕像素點的寬度,也就是紋理鋪放在x軸像素點個數,相應為紋理坐標的x軸
MaxT是紋理高度度除以對于的屏幕像素點高度,也就是<span style="font-family: Arial, Helvetica, sans-serif;">紋理鋪放在x軸像素點個數。相應為紋理坐標的y軸
這篇博文的重點再有已有opengl入門的情況下。了解CCTexture2D的參數意思就能夠任意繪制紋理了。
void HelloWorld::draw() {//opengl世界坐標軸的讀取和繪制默認是逆時針順序static GLfloat vertext[] = {0.0f,0.0f,0.0f,480.0f,0.0f,0.0f,0.0f,320.0f,0.0f,480.0f,320.0f,0.0f};//可是紋理的讀取也是逆時針,僅僅是EG是用三角形作為基礎圖形去繪制其它圖形,方向先繪制下三角,再繪制上三角!。!
之前這里搞錯了。希望大家別被我誤導了 static GLfloat coord[] = { 0.0f,1.0f, 1.0f,1.0f, 0.0f,0.0f, 1.0f,0.0f }; static GLfloat colors[] = { 1.0f,1.0f,1.0f,1.0f, 1.0f,1.0f,1.0f,1.0f, 1.0f,1.0f,1.0f,1.0f, 1.0f,1.0f,1.0f,1.0f, }; <span style="white-space:pre"> </span>
如果換成灰度圖的話。float gray = r*0.3+g*0.59+b*0.11;將上訴的1.0f所有換成gray。就是對應的灰度圖了 //初始化紋理,即將紋理映射至openGL ES的世界坐標系中static CCTexture2D * texture2d = CCTextureCache::sharedTextureCache()->addImage("HelloWorld.png");coord[2] = coord[6] = texture2d->getMaxS();coord[1] = coord[3] = texture2d->getMaxT();重載void draw (void) 就可以??赡芘R時停止更新博客,先主要著手于游戲實現,而不是分享。
以下是貼轉載內容:http://blog.csdn.net/wusheng520/article/details/8109284
CCTexture2D的成員變量:
m_tContentSize??? 圖片的原始大小
m_uPixelsWide??? 大于等于原始寬度的最接近原始寬度的2的冪次方
m_uPixelsHeight??? 大于等于原始高度的最接近原始高度的2的冪次方
m_fMaxS???? m_tContentSize .x / m_uPixelsWide
m_fMaxT ??? m_tContentSize .y / m_uPixelsHeight???
轉載于:https://www.cnblogs.com/zfyouxi/p/5254498.html
總結
以上是生活随笔為你收集整理的2.x最终照着教程,成功使用OpenGL ES 绘制纹理贴图,添加了灰度图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fis
- 下一篇: Delphi读写二进制文件