opengles繪製點精靈

2021-08-01 06:57:50 字數 1348 閱讀 5546

什麼是點精靈

opengl圖形由頂點構成,所謂點精靈就是對點進行紋理對映,簡單說就是把一副紋理貼在乙個點上

原來4個頂點構成乙個矩形,現在乙個頂點就完成了,典型的如粒子效果,雲霧,水流火花都可以用點精靈來實現

,這樣減少了3個頂點的計算,效率很高。下面看例子 我們把

shader實現

virtual void    initialize()

" };

//gl_pointcoord 點精靈的二維空間座標範圍在(0.0,0.0)到(1.0,1.0)之間,僅用於點圖元和點精靈開啟的情況下

const char* ps =

" };

渲染函式:

virtual void    render()

; //! 清空緩衝區

glclear(gl_depth_buffer_bit | gl_color_buffer_bit);

//! 視口,在windows視窗指定的位置和大小上繪製opengl內容

glviewport(0, 0, _width, _height);

//! 建立乙個投影矩陣

cell::matrix4 screenproj = cell::ortho(0, float(_width), float(_height), 0, -100.0f, 100);

_shader.begin();

;glbindtexture(gl_texture_2d, _sprit);

gluniform1i(_shader._texture, 0);

gluniform1f(_shader._pointsize, 64);

gluniformmatrix4fv(_shader._mvp, 1, false, screenproj.data());

glvertexattribpointer(_shader._position, 2, gl_float, false, sizeof(vertex), vertex);

glvertexattribpointer(_shader._color, 4, gl_unsigned_byte, true, sizeof(vertex), &vertex[0].color);

gldrawarrays(gl_points, 0, 4);

}_shader.end();

}

學習OpenGL ES之繪製地形

地形模型一般是由nxn的網格構成,網格的點在y軸上的座標由灰度地形圖上相應的顏色決定。顏色越亮,高度越高。顏色每個通道的取值範圍可以是0 255,通過公式轉換,可以很容易的控制生成模型的高度。上篇文章中,我們使用三角帶生成圓柱體的中間部分。現在我們要用多個三角帶來生成地形。如何生成單個三角帶我就不贅...

OPENGL ES之繪製金字塔

今天比照著教材畫了乙個金字塔,這個案例主要涉及到了圖形變換矩陣的使用。但是其中遇到了一些問題不甚明了,在我自己的 中,我設定了view.drawabledepth glkviewdrawabledepth16,結果繪製出來的圖案給人的感覺是從三角形底部看去的,把設定繪製深度的 注釋掉,則我的 的表現...

4 OpenGLES繪製螺旋點 線

public class myactivity extends activity class myglsu ceview extends glsu ceview public myglsu ceview context context,attributeset attrs public class ...