導航:首頁 > 編程語言 > opengl著色器編程

opengl著色器編程

發布時間:2023-10-17 08:05:32

『壹』 如何動態地畫一條虛線在Android中使用OpenGL ES 2.0編程

動態繪制虛線,可以參考如下內容:
、被稱為點畫的影響。不幸的是,點畫已經從OpenGL的刪除,但幸運的是,有幾種方法仍然得到的效果。我們必須充分利用的OpenGL的著色語言的這項任務。 頂點著色器:uniform mat4 u_modelViewProjectionMatrix;
uniform mat4 mv;
attribute vec4 a_position;
attribute vec4 a_color;
varying vec4 v_color;
varying vec4 position;
void main() {
gl_Position = u_modelViewProjectionMatrix * a_position;
position = mv * a_position;
v_color = a_color;
}

著色器:precision mediump float;
uniform vec2 sourcePoint;
varying vec4 v_color;
varying vec4 position;
void main() {
if (cos(0.1*abs(distance(sourcePoint.xy, position.xy))) + 0.5 > 0.0) {
gl_FragColor = vec4(0,0,0,0);
} else {
gl_FragColor = v_color;
}
}

我沒有在這里找到本教程中,我測試了,這里是我的結果:

正如羅斯托夫在這個線程解釋,這里最大的部分是sourcePoint。

的關鍵 CodeGo.net,整個事情是sourcePoint被傳遞的
該行的起源。

如果你不喜歡這種方式也存在textures圖案的效果。有與α虛線效果textures,並將其應用到您的線路。
2.
我找到了一個更好的解決方案。它的水平和垂直線。
#define DOT_VERTEX_CODE \
"attribute vec4 a_Position;" \
"uniform mat4 projectionMatrix;" \
"varying vec2 v_xy;" \
"void main() {gl_PointSize = 1.0; gl_Position = a_Position*projectionMatrix; v_xy = a_Position.xy;}"
#define DOT_FRAGMENT_CODE \
"precision mediump float;" \
"varying vec2 v_xy;" \
"uniform float isVert;" \
"uniform vec4 color1;" \
"uniform vec4 color2;" \
"void main() {gl_FragColor = mod(isVert > 0.0 ? v_xy.y : v_xy.x, 2.0) >= 1.0 ? color1 : color2;}"

『貳』 C語言windows,OpenGL編程

  1. 查找 MSDN 可以得知,MSG 裡面的 pt 坐標是相對於窗口的左上角的;

2. 至於聲音控制和播放,可以使用 Windows 自帶的 MCI API,或者使用 DirectSound 來播放,我推薦你使用 un4seen 的 BASS,簡單實用強大,一兩個函數就可以播放音效了;

3. 你要使用 alpha blend 與桌面進行鏤空運算,就必須首先獲得桌面的窗體句柄,OpenGL 的 alppha 運算我不是很懂,不過 Direct3D 的話就簡單多了;

4. 屏幕常亮,其實就是阻止系統進入休眠狀態,每當系統要進入休眠狀態之前,都會向系統的所有窗口發送一條消息,你攔截這條消息,進行特別的處理就可以防止系統進入休眠了,至於是什麼消息,請查看 MSDN,我也好久沒用過這條消息了;

5.bmp 文件可以保存 alpha 通道,使用 32bit 色深的 bmp 文件就可以了,RGB 分別 8bit,alpha 通道 8bit,不過說到 alpha 通道,tga 或者 png 圖片更加合適,因為他們可以進行無損壓縮

6.用GetPocAddress導出函數,只能用類型強制轉換,這個是 windows 的原則,我們只能去迎合它了 ...

7. 執行 NULL 指針的話,不同的系統會有不同的反應,XP 是直接程序崩潰,Vista 或者以上的系統,就會提示無響應

8. 如果你建立的工程是 Win32 窗口程序,那麼就不會有 DOS 窗口,如果你建立的是 Win32 控制台程序,那麼就會有 DOS 窗口;如果你使用 OpenGL 實用庫來創建 OpenGL 程序,那個 DOS 窗口是無法消除的,它可以幫助你進行錯誤排查

9. 不要用 Dev C++ 了,用 VS2010 吧,這是行業規范


最後,祝樓主學習愉快

閱讀全文

與opengl著色器編程相關的資料

熱點內容
bat大廠程序員十大標准 瀏覽:591
工程人程序員醫生圖片 瀏覽:498
車上顯示伺服器未激活是什麼意思 瀏覽:621
海歸程序員回國求職 瀏覽:9
單片機哪個工作區可以切換4個區 瀏覽:472
2019彩六改伺服器地址 瀏覽:414
程序員女有什麼特點 瀏覽:519
程序員的行情如何 瀏覽:309
程序員老宅視頻 瀏覽:556
安卓手機如何使用藍牙鍵鼠 瀏覽:234
u盤安裝redhatlinux 瀏覽:56
電腦u盤加密要不要空間 瀏覽:431
程序員對普通人發信息 瀏覽:140
php向下取整函數 瀏覽:499
信源編解碼實驗分析 瀏覽:479
前端程序員需要什麼證書 瀏覽:114
蚌埠前端程序員私活收入是多少 瀏覽:488
自動關機dos命令 瀏覽:325
我的app為什麼打不開 瀏覽:160
華為手機更新app放在哪裡 瀏覽:784