specular

    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

    0热度

    1回答

    我的镜面照明有一些问题,我有环境和漫反射,但我现在正在寻找镜面反射来尝试制作漂亮的模型。 我在vertexShader如下: #version 330 layout (location = 0) in vec3 Position; layout (location = 1) in vec3 Normal; out vec4 Colour0; // Transforms unifor