你如何计算glsl中两个法线之间的角度?我试图将菲涅尔效果添加到对象的外边缘(将该效果与phong着色相结合),我认为角度是我唯一缺少的.
片段着色器:
varying vec3 N;
varying vec3 v;
void main(void) {
v = vec3(gl_ModelViewMatrix * gl_Vertex);
N = normalize(gl_NormalMatrix * gl_Normal);
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}
Run Code Online (Sandbox Code Playgroud)
顶点着色器:
varying vec3 N;
varying vec3 v;
void main(void) {
vec3 L = normalize(gl_LightSource[0].position.xyz - v);
vec3 E = normalize(-v);
vec3 R = normalize(-reflect(L,N));
vec4 Iamb = gl_FrontLightProduct[0].ambient
vec4 Idiff = gl_FrontLightProduct[0].diffuse * max(dot(N,L), 0.0);
vec4 Ispec = gl_FrontLightProduct[0].specular * pow(max(dot(R,E),0.0), gl_FrontMaterial.shininess);
vec4 Itot = gl_FrontLightModelProduct.sceneColor + Iamb + Idiff + Ispec;
vec3 …Run Code Online (Sandbox Code Playgroud) 我希望为Web应用程序实现基于客户端的RDFa格式.这与Mark Birbeck的 ubiquity-rdfa项目类似.
马克的项目看起来很棒,但它至少有两个缺点:
我正在寻找一种通过客户端代码添加注释的轻量级方法,我不介意做一些工作来获得它.
我想要的是一个快速可靠的Javascript RDFa解析器.
我发现的一些实现包括:
我很想知道您是否会推荐其中一个或另一个RDFa Javascript实现.
谢谢!
地图格式OpenDrive提供(除其他外)道路的几何形状。道路的每一段都可以具有不同的几何形状(例如线、弧、螺旋、多项式)。提供的道路几何“螺旋”信息如下:
- s - relative position of the road segment in respect to the beginning
of the road (not used in here)
- x - the "x" position of the starting point of the road segment
- y - the "y" position of the starting point of the road segment
- hdg - the heading of the starting point of the road segment
- length - the length of the road segment
- curvStart - the curvature at …Run Code Online (Sandbox Code Playgroud) 我写了一个简短的 matlab 脚本文件,假设运行菲涅耳的传播(衍射),这样给定一个特定的输入字段 U0,它会告诉你该字段在距离 z0 后的样子。我将结果与教科书的结果进行了比较,看起来我的程序运行良好。问题是如果我尝试采取两个传播步骤而不是一个。即,不是通过程序的一次迭代来传播距离 z0,而是通过程序的两次迭代来传播距离 z0/2。然后我就完全胡说八道了,我无法弄清楚是什么问题。任何建议将被接受,非常感谢。这是代码:
function U = fresnel_advance (U0, dx, dy, z, lambda)
% The function receives a field U0 at wavelength lambda
% and returns the field U after distance z, using the Fresnel
% approximation. dx, dy, are spatial resolution.
k=2*pi/lambda;
[ny, nx] = size(U0);
Lx = dx * nx;
Ly = dy * ny;
dfx = 1./Lx;
dfy = 1./Ly;
u = ones(nx,1)*((1:nx)-nx/2)*dfx;
v = ((1:ny)-ny/2)'*ones(1,ny)*dfy;
O = fftshift(fft2(U0));
H = exp(1i*k*z).*exp(-1i*pi*lambda*z*(u.^2+v.^2));
U …Run Code Online (Sandbox Code Playgroud)