物件整體透明實現

2021-04-13 02:52:36 字數 401 閱讀 3035

在網上沒找到參考**,自己想了兩個辦法

1。將物件渲染到紋理上,再把紋理混合到主表面上。zbuffer不用切換,依然使用主表面的zbuffer,這樣層次不會亂。這種做法只需要渲染一次,**稍微複雜點。

2。將整個物件做兩次渲染,第一次關閉顏色快取的渲染,開啟zbuffer,作一次渲染。第二個pass開啟顏色快取,作alpha混合 。以為深度值在第一pass已經改變,所以深度值大的點不會輸出,也就不會影響到透明效果了。這個因為要作兩次渲染,效率可能要低點。我沒實際測試過,估計的。這個方法**最簡單了。如果用shader,那更簡單了,直接在在shader裡面寫兩個pass就好了。當然物件不能跨technique渲染。

technique renderscenewithtexture1light

pass p1

}

OSG物件設定透明

osg 開啟透明度 cpp view plain copy print?include include include include osg ref ptrcreateboxa osg ref ptrcreateboxb intmain intargc,char argv 從外部匯入的模型,有兩種...

Qt 透明窗體實現

一.背景刷成黑色,前景色設為白色。方法一 paltette方式,經測試,該方法不會影響到其他控制項,推薦使用 qpalette bgpal palette bgpal.setcolor qpalette background,qcolor 0,0 0,255 bgpal.setcolor qpale...

WM 實現透明效果

一 使用alphablend api 這個可以看黎老師的文章。見原文 net framework的winform程式支援支援調節控制項的透明度和gdi 用它可以實現例如淡入淡出這種很酷的介面效果。而.net compact framework的窗體和控制項不支援透明和gdi 因此常常利用來完成一些美...