specular

    0熱度

    1回答

    我的鏡面照明有一些問題,我有環境和漫反射,但我現在正在尋找鏡面反射來嘗試製作漂亮的模型。 我在vertexShader如下: #version 330 layout (location = 0) in vec3 Position; layout (location = 1) in vec3 Normal; out vec4 Colour0; // Transforms unifor

    3熱度

    1回答

    我使用Three.JS在WebGL中創建了一個地球,到目前爲止,我擁有一個擁有白天和黑夜紋理以及氛圍的地球。現在完成它,我想添加一個反射到我的地球,只顯示在水的部分。現在,我已經有了一個高光貼圖,但我似乎無法將它們拼湊在一起。 因爲地球/夜景/大氣層,我在做自定義着色器中的所有東西,而且我讀到我也必須在此等式中包含高光計算,因爲Three.JS無法堆疊多個着色器。 這是我的着色器,而我只是停留在鏡

    4熱度

    2回答

    我正在寫一個Phong底紋的小測試,並且正在試圖讓我的頭靠在一堵磚牆上試圖讓鏡面組件工作。它似乎能夠正常工作,除了鏡面光線被應用於物體後部的前部&。 (該物體本身是透明的,手動對面對CPU側進行排序。) 請注意,漫反射組件完美工作(只在面對光源的一側顯示) - 這似乎排除了與法線到達片段着色器,我想。 據我所知,鏡面反射分量與反射光矢量的眼矢量之間的角度的cos成正比。 爲了讓事情變得非常簡單,我

    1熱度

    1回答

    Blinn-phong底紋...? 所以我遇到的問題,如上面的圖片說明有希望是,我似乎無法讓我的鏡面高光遮陽順利。問題是沿着臉部邊緣的突然切斷,這不應該發生。漫射照明似乎工作得很好,它使用相同的插值。下面是對布林 - 海防鏡面高光代碼: vec3 halfAngle = normalize(lightDirection.xyz + viewRay); float blinnTerm = dot

    0熱度

    1回答

    我一直在爲一個應用程序的光機制工作,並獲得漫反射光(環境和方向)工作得很好,但鏡面光創造了一些奇怪的效果。就好像它可以消除它周圍的散射光。 這裏是鏡面光計算。 vec3 directionToEye = normalize(u_eyePos - position); vec3 reflectDirection = normalize(reflect(direction, normal));

    0熱度

    1回答

    標題說明了所有..使用在照明系統中構建的opengls,specularlight不會隨着距離物體的距離而增加或減少,而是由着色器實現。 頂點着色器: #version 330 layout (location = 0) in vec3 position; layout (location = 1) in vec2 texCoord; layout (location = 2) in ve

    0熱度

    1回答

    我想向Stage3D遊戲添加鏡面反射,它幾乎是工作的,但我不認爲我有足夠的把握在實際反射階段發生的數學。 我有一個入射光矢量,我的臉部正常;我知道如何處理產生的反射矢量(歸一化,然後使用標準化矢量指向播放器的相機,然後點產品),但AGAL操作碼是什麼將原始光矢量反映在臉上?我無法理解這一點。任何幫助讚賞...

    1熱度

    1回答

    我想在GLSL中實現phong着色,但是在高光組件上存在一些問題。 綠光是鏡面反射分量。光線(點光源)在飛機上方以圓形行進。鏡面高光始終指向光軸旋轉的Y軸,並朝圖像中看到的漫反射散開。它看起來沒有受到相機定位的影響,我不確定哪裏出錯。 頂點着色器代碼: #version 330 core /* * Phong Shading with with Point Light (Quadratic

    0熱度

    2回答

    我剛剛嘗試實施高光反射。問題在於,當遠離表面移動時,突出部分變得越來越強,突出部分的邊緣變得非常嚴酷。當移動到表面太近時,高光完全消失。 這是我的片段着色器的相關部分。所有的計算都在視圖空間中。我使用定向太陽光。 // samplers vec3 normal = texture2D(normals, coord).xyz; vec3 position = texture2D(position

    2熱度

    1回答

    我試圖在我們的項目中實現基於物理的渲染(PBR)(我們開發了一個用於學術和學習目的的小型遊戲引擎),我無法理解基於材質金屬的計算鏡面反射和彌散貢獻的正確方法和粗糙度。 我們不使用任何第三方庫/引擎進行渲染,一切都是用OpenGL 3.3手寫的。 現在我有這個(我把下面的完整代碼): // Calculate contribution based on metallicity vec3 diffu