我正在尝试在我的光线追踪器中为球体实现纹理.我设法得到了一些工作,但我不确定它的正确性.下面是获取纹理坐标的代码.目前,纹理是随机的,并在运行时生成.
virtual void GetTextureCoord(Vect hitPoint, int hres, int vres, int& x, int& y) {
float theta = acos(hitPoint.getVectY());
float phi = atan2(hitPoint.getVectX(), hitPoint.getVectZ());
if (phi < 0.0) {
phi += TWO_PI;
}
float u = phi * INV_TWO_PI;
float v = 1 - theta * INV_PI;
y = (int) ((hres - 1) * u);
x = (int) ((vres - 1) * v);
}
Run Code Online (Sandbox Code Playgroud)
这就是球体现在的样子:

我不得不规范化生命点的坐标以使球体看起来像那样.否则他们看起来像:

将命中点坐标正规化为正确的方法,还是我的代码中的其他东西被破坏了?谢谢!
我尝试将其翻译为世界原点(就好像球体中心在那里)而不是标准化生命点,并获得以下结果:

顺便说一句,我使用256x256分辨率纹理.
我目前正在几个Spring Boot应用程序之间实现身份验证。目前,jwt访问令牌已在授权标头中发送,并由资源服务器提取。但是我想使用HttpOnly cookie发送令牌,并且想知道如何配置Spring Boot从cookie而不是头获取令牌。
我应该提到,我正在使用spring-security-oauth2和spring-security-jwt库。
谢谢!