[問題] openGL融合因子
看板C_and_CPP (C/C++)作者jack0820 (我想要P幣....Orz)時間13年前 (2012/11/12 22:05)推噓3(3推 0噓 12→)留言15則, 3人參與討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Qt
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
openGL
問題(Question):
是這樣的
小弟剛接觸openGL
最近正在試著練習顏色融合
試驗一下似乎跟書本上的理解不同
程式大約長這樣
glClearColor(1.0f, 0.0f, 0.0f, 1.0f); //設背景為紅色
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
...
...
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ZERO); //設定融合因子
render_part(0.0, 1.0, 0.0, alpha); //設定某區塊顏色為綠色
其中 alpha是設定透明度的值
根據openGL融合規則
最終顯示的RGBA值應為
R = Rs*Fs + Rt*Ft
G = Gs*Fs + Gt*Ft
B = Bs*Fs + Bt*Ft
A = As*Fs + At*Ft (Fs:源因子;Ft:目標因子)
程式最後跑出來
綠色區塊是不會跟紅色做混合
如果根據上式
最終的RGBA應該會與綠色的RGBA值一樣
但不懂為啥alpha設多少都還是顯示綠色? @@
我的意思是
為啥alpha不管設 1.0, 0.5甚至是0
最後都還是顯示綠色?
alpha設為0應該完全看不到綠色呀?
看起來像是GL_ONE會一律將alpha設為1?
請問是我公式理解錯誤還是
openGL函示的實作不同呢?
想了很久都沒頭緒~
所以就來請教大家了
在此也先謝謝大家的幫忙囉 @@"
--
如果愛情能像物理,我將不再困惑於迷惘
如果物理能解迷情,為了妳,我願意苦讀物理
by 陳碩物理~=.=
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.179.30
→
11/12 22:26, , 1F
11/12 22:26, 1F
推
11/12 22:35, , 2F
11/12 22:35, 2F
→
11/12 22:46, , 3F
11/12 22:46, 3F
→
11/12 22:47, , 4F
11/12 22:47, 4F
推
11/12 22:49, , 5F
11/12 22:49, 5F
→
11/12 22:53, , 6F
11/12 22:53, 6F
→
11/12 23:26, , 7F
11/12 23:26, 7F
→
11/12 23:26, , 8F
11/12 23:26, 8F
→
11/12 23:27, , 9F
11/12 23:27, 9F
→
11/12 23:29, , 10F
11/12 23:29, 10F
→
11/12 23:30, , 11F
11/12 23:30, 11F
→
11/12 23:31, , 12F
11/12 23:31, 12F
→
11/12 23:32, , 13F
11/12 23:32, 13F
推
11/13 00:06, , 14F
11/13 00:06, 14F
→
11/13 00:06, , 15F
11/13 00:06, 15F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章