計算機圖形學

計算機圖形學研究人員和程序員的問答

2
動態三角射線相交
我正在研究一款小型仿真軟件,該軟件具有使用OpenGL的3D渲染器。我將對象渲染為屏幕上的三角形網格。為了能夠在屏幕上選擇三角形,我已經實現了Möller-Trumbore射線三角形相交算法。該算法工作正常。但是,我還有另一個問題...
   

1
同一內存位置上的原子功能是否會導致性能問題?
在相同的存儲位置上對atomicAdd進行每次調用是否比對唯一的存儲位置atomicAdd進行每次調用差?(我知道,當每次調用寫入另一個位置時,atomicAdd都沒有意義……但這是理論上的)我問,因為我寫了行進立方體算法,並且在創建網...
  

1
如何在紋理繪畫應用程序中將紋理投影到3D模型上
在大多數建模軟件中,您可以使用所謂的模版紋理在3d模型上繪製紋理。它們基本上是將視口視圖中的紋理投影到模型上,例如下面的Blender圖片所示。將這樣的紋理投影到3d模型上的一般技術是什麼? ...
  

0
為什麼在構建投影矩陣OpenGL時否定z
我從scratchpixel.com上的this文章構建了正交投影矩陣:Matrix4 ortho(float l, float r, float b, float t, float n, float f) { return Matrix4( 2/(r-l), 0, 0, -(r+l)/(r-l), //row 0 0, 2/(t-b), 0, -(t+b)/(t-b), //row 1 0, 0, -2/(f-n), -(f+n)/(f-n), //row 2 0, 0, 0, 1 //row...
   

2
圓柱形狀圖元的UV偏導數
我不熟悉渲染,我想計算圓柱形狀的UV偏導數,該參數由半徑 $ R $ 和長度 $ L $ 。使用圓柱坐標映射,對於曲麵點 $ \ mathbf {p} =(x,y,z)$ ,UV映射(歸一化為 $ [0,1] $ )是: $$(u,v)= \ Big(\ frac {\ phi} {2 \ pi},\ frac {z} {L} \ Big...
  

0
數字油畫畫佈如何渲染?
像Krita和Photoshop這樣的數字繪畫和光柵圖形軟件都有一塊畫布,您可以在其中用畫筆繪畫。從編程角度看,該畫佈如何呈現?它可以包含在OpenGL之類的圖形管道中嗎?一種建議的解決方案是將畫布表示為紋理。如果您知道更多可...
  

2
解釋圖像處理數學方程式
我正在閱讀Chan and Shen在2005 SIAM上發表的 圖像處理和分析 。他們引入了一些表示法,我不確定該如何解釋: $$ u_0(x)= u(x)+ n(x),x =(x_1,x_2)\ in \ Omega $$ 他們說 $ u_0 $ 代表一個嘈雜的圖像, $ u $ 是乾淨的圖像,而 $ n $ ...
  

1
OpenGL任務/網格著色器擴展NV_mesh_shader表現異常
我正在嘗試使用NVidia的NV_mesh_shader擴展(在我的RTX2080上)。樣本很少,因此我嘗試提出自己的小樣本。我正在使用索引緩衝區和頂點緩衝區渲染一個球體(20個三角形)。我可以使用帶有兩個著色器存儲緩衝區(一個用於頂點,...
  

0
將頂點和索引緩衝區轉換為文件格式
我想在屏幕上渲染許多頂點和索引緩衝區。理想情況下,每個模型都位於世界空間內的不同位置。我實際上是在對世界空間模型之間的空間關係進行統計研究。我已經在DirectX圖形管道上進行了大量閱讀,以嘗試並基本了解其工...
   

3
頂點法線有什麼用?
我是圖形領域的新手,當涉及到淺色部分時,頂點法線的概念使我感到非常困惑。首先,我無法想像頂點如何具有法線,其次,在計算反射光時,我不應該使用面部的法線嗎?那麼,有人可以幫助我理解頂點法線是什麼,它的用...
 

3
BRDF可以在漫反射,光澤和反射之間進行插值?
有沒有辦法獲得在擴散,光澤和反射鏡之間平滑插值的參數化BRDF?例如, $ \ lambda = 0 $ 將是完全擴散的, $ \ lambda = 0.5 $ 有光澤, $ \ lambda = 1 $ 是一面完美的鏡子。線性插值在這裡似乎非常錯誤。 ...
  

1
在網格上找到測地線?
在任意流形網格上找到測地線的最新技術/算法有哪些?...
    

0
如何顯示內存中的幀緩衝區
我正計劃編寫一個小型軟件渲染引擎(在有人問之前,這對我來說是一種學習/科學實驗)。在編寫任何代碼之前,我已經停留在第一步:如何在屏幕上顯示我的幀緩衝區?我計劃要做的是渲染到內存緩衝區中,例如320x200 24位RGB...
   

5
延遲渲染的計算著色器與片段著色器的性能
我編寫了一個延遲渲染器,可以使用片段著色器或計算著色器執行著色過程。不幸的是,計算著色器實現的運行速度較慢。我試圖了解原因。 我相信我了解最直接的原因:訪問紋理時的內存局部性。某種程度上,片段著色器的...
    


1
使用布雷森漢姆的圓算法(或其他替代算法)繪製圓弧
我正在嘗試為彙編器中的ZX Spectrum(Z80)機器創建一些圖形功能。除了弧線,我已經掌握了一些基礎知識。我需要一種快速的算法來繪製圓弧,理想情況下,該算法使用整數或定點數學。我知道一定有某種方法可以使用布雷森漢...
  

0
段上最近的球
我試圖獲取曲面上的線段最近點,並在該位置顯示一個圓(在這種情況下為球形)。我實際上得到了正確的位置,但是我無法根據計算的數據得到一個均勻的球體。 這是我用於找到相交點並繪製球體的關聯代碼。float3 a = from; flo...
     

5
UV展開如何工作?
我想將網格的三角形投影到2D曲面上。我想最小化失真,如果可能的話,避免破壞連接的多邊形,並最大化2D表面上的已用空間。我試圖尋找有關該主題的算法/論文,但我只能找到有關如何在Blender等3D建模軟件中使用UV解包的文...
  

2
您是否需要在Vulkan中對繪圖和著色器調用進行分組和優化?
這與opengl的學科(或多或少要求)將使用相同材質的繪圖分組在一起形成對照,並與之形成對照,從而最大程度地減少了多次繪製調用或許多開關著色器調用。可以肯定地說,由於vulkan不是基於狀態/上下文的,因此您可以將具...
  

0
如何使用PCA重建3D網格?
給定一組人體網格{S_i},對於每個S_i,點為N * 3,我們可以對此進行PCA。我們可以使用PCA來減小{S_i}的尺寸,例如減小到k尺寸。假設PCA的主要方向為[D1,D2,...,Dk],則身體的幾何形狀可以表示為S = W1 * D1 + W2 * D2 + ... + Wk * Dk,其...
  

Next page