问题标签 [normals]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 模型的 C# XNA 法线、漫反射和镜面反射?
我是 XNA 的初学者,在一个基本的 3D 游戏中试试运气。
我有一些非常有才华的 3D 建模师支持我,虽然我在将 .fbx 文件(模型本身)导入 XNA 中的基本 3D 世界时遇到问题,但我不知道如何包含它们的法线贴图、漫反射和镜面反射'已经包含在他们的模型中。
法线、漫反射和镜面反射都是 .tga 图像文件格式,我不知道如何将它们添加到我的模型绘图中。
现在我绘制 3D 对象的代码如下:
cuda - c opengl:我可以在gpu中计算法线吗?(CUDA)
我正在尝试访问内核内的最后一个和下一个索引坐标。
例如:int idx = blockIdx.x * blockDim.x + threadIdx.x;
那么 pos[idx].x, pos[idx].y, pos[idx].z 将给出一个点的当前坐标。但无法访问其他两个。我正在尝试使用 CUDA 计算 GPU 级别中不断变化的三角形的法线。
algorithm - 从三角形集计算顶点法线以进行 Gouraud 着色的最有效算法
我们得到一组三角形。每个三角形是三个点。每个点都是实数的三元组。我们可以计算每个三角形的表面法线。然而,对于 Gouraud 着色,我们需要顶点法线。因此我们必须访问每个顶点并查看共享该顶点的三角形,平均它们的表面法线,我们得到顶点法线。
实现这一目标的最有效算法和数据结构是什么?
一个天真的方法是这样的(伪python代码):
有没有更有效的方法?
opengl - OpenGL - 投影后正确的表面法线
我目前正在使用 OpenGL 开发一个小玩具程序,该程序在剪辑空间视图中显示场景,即它绘制一个立方体以可视化规范视图体积,并在立方体内部绘制投影变换模型。要显示模型图的代码片段:
因此,自然地,绘制的模型是“扭曲的”(这是所需的行为)。然而,照明是错误的,因为表面法线也被投影矩阵变换,因此在变换后与它们的表面不正交。我想要完成的是“正确”的照明,即扭曲模型的表面具有正确的法线。
问题是 - 我该怎么做?我正在使用通常的法线转置逆矩阵规则,但据我所知,这就是 OGL 默认情况下对其法线所做的事情。我想在用模型视图矩阵转换表面之后,我必须重新计算表面法线,但是该怎么做呢?还是有其他方法?
geometry - Find the normal "N" on an ellipses through a point on a cross section
I'm trying to make a nice deflection effect in a little physics engine I've made. Right now it deflects nicely off the normal of a polygon edge. But instead of making a polygon with 100 edges to get a smooth effect of a "rounded deflection" I figured I could calculate the deflection normal using an ellipse instead.
So, what I'd really like is a function that takes a point P on a line segment and returns the normal N on the circumference of an imaginary ellipse(w,h). See the attached picture for some details.
To get a point on the circumference of an ellipse I'm pretty sure it's:
but how can I get the normal from that?
Here's a fiddle with an attempt to implement the answer by Dr BDO Adams.
android - 在 Opengles 2.0 中在平滑着色到平面着色之间切换
我正在使用 opengles 2.0 为 android 中的 3d 应用程序绘制一些模型,但那些
盒状模型看起来太光滑,阴影平滑,我需要球体模型的阴影平滑。
我将 3d 模型导出到 .OBJ 文件中,并从搅拌机中获得平滑的阴影。
现在我的 3d 模型结构有
每个顶点法线。
使用顶点索引数组绘制模型。
由于我的模型的法线是每个顶点的法线,我处理这个问题的计划是创建一个每个面
正常并将我的所有绘图方法重建为不使用顶点索引数组导致它无法执行。
我不想做这个计划,因为顶点索引数组消耗的内存更少。
有没有办法用顶点索引数组使平面平滑,以便像函数一样使用插值变化或其他方式的中间值来制作 GLSL?
感谢您的帮助,并为我糟糕的英语感到抱歉。
javascript - 将顶点法线转换为面法线
我有一个三角多面体(不一定是凸的)和以下信息:
每个顶点的位置列表。定义每个面的顶点三元组列表。顶点法线列表(这里的顶点法线是来自每个顶点的向量,通过平均每个顶点周围的面法线(见下文)来计算)。
我想计算面法线列表(垂直于每个面的平面的标准化向量,指向外面)。
performance - 2 通道法线贴图的性能成本和缺点是什么?
我正在做的是使用法线贴图来照亮 2D 精灵。最初我打算在图像红色通道中使用凹凸/高度图,并使用其他两个通道来存储其他信息。我的想法是,因为我知道法线贴图上的任何法线总是在 [0 .. 1] 范围内具有 z 值,我可以从蓝色通道中排除此信息并根据 x 的长度计算 z 值和 y 值。所以我试了一下,它似乎到目前为止工作,它看起来几乎和原来的一样。
我的问题是附加说明的费用是多少?有一些额外的乘法和加法以及另外两个 sqrt 调用。
这是使用的片段着色器:
opengl - 高度图数据的法线
我想找到高度图数据的法线。我在我的代码中使用 gl_triangles 作为索引。我如何找到这个的法线?
performance - OpenGL - 如何计算地形高度网格中的法线?
我的方法是分别计算平行于 X 轴和 Y 轴的两个切向量。然后计算叉积以找到法向量。
切线向量由穿过两个最近线段中点的线给出,如下图所示。
我想知道是否有更直接的计算,或者在 CPU 周期方面更便宜。