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

Function MapXYSToDirection

SampleFramework11/v1.02/Graphics/Textures.cpp:330–361  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

328
329// Utility function to map a XY + Side coordinate to a direction vector
330Float3 MapXYSToDirection(uint64 x, uint64 y, uint64 s, uint64 width, uint64 height)
331{
332 float u = ((x + 0.5f) / float(width)) * 2.0f - 1.0f;
333 float v = ((y + 0.5f) / float(height)) * 2.0f - 1.0f;
334 v *= -1.0f;
335
336 Float3 dir = 0.0f;
337
338 // +x, -x, +y, -y, +z, -z
339 switch(s) {
340 case 0:
341 dir = Float3::Normalize(Float3(1.0f, v, -u));
342 break;
343 case 1:
344 dir = Float3::Normalize(Float3(-1.0f, v, u));
345 break;
346 case 2:
347 dir = Float3::Normalize(Float3(u, 1.0f, -v));
348 break;
349 case 3:
350 dir = Float3::Normalize(Float3(u, -1.0f, v));
351 break;
352 case 4:
353 dir = Float3::Normalize(Float3(u, v, 1.0f));
354 break;
355 case 5:
356 dir = Float3::Normalize(Float3(-u, v, -1.0f));
357 break;
358 }
359
360 return dir;
361}
362
363}

Callers 2

ProjectCubemapToSHFunction · 0.85
RenderSkyMethod · 0.85

Calls 1

Float3Class · 0.85

Tested by

no test coverage detected