MCPcopy Create free account
hub / github.com/TheRealMJP/MSAAFilter / MapXYSToDirection

Function MapXYSToDirection

SampleFramework11/v1.01/Graphics/Textures.cpp:307–338  ·  view source on GitHub ↗

Utility function to map a XY + Side coordinate to a direction vector

Source from the content-addressed store, hash-verified

305
306// Utility function to map a XY + Side coordinate to a direction vector
307Float3 MapXYSToDirection(uint64 x, uint64 y, uint64 s, uint64 width, uint64 height)
308{
309 float u = ((x + 0.5f) / float(width)) * 2.0f - 1.0f;
310 float v = ((y + 0.5f) / float(height)) * 2.0f - 1.0f;
311 v *= -1.0f;
312
313 Float3 dir = 0.0f;
314
315 // +x, -x, +y, -y, +z, -z
316 switch(s) {
317 case 0:
318 dir = Float3::Normalize(Float3(1.0f, v, -u));
319 break;
320 case 1:
321 dir = Float3::Normalize(Float3(-1.0f, v, u));
322 break;
323 case 2:
324 dir = Float3::Normalize(Float3(u, 1.0f, -v));
325 break;
326 case 3:
327 dir = Float3::Normalize(Float3(u, -1.0f, v));
328 break;
329 case 4:
330 dir = Float3::Normalize(Float3(u, v, 1.0f));
331 break;
332 case 5:
333 dir = Float3::Normalize(Float3(-u, v, -1.0f));
334 break;
335 }
336
337 return dir;
338}
339
340}

Callers 2

ProjectCubemapToSHFunction · 0.85
RenderSkyMethod · 0.85

Calls 1

Float3Class · 0.85

Tested by

no test coverage detected