MCPcopy Index your code
hub / github.com/microsoft/SandDance / createShadowUniforms

Function createShadowUniforms

docs/app/js/sanddance-app.js:79860–79897  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

79858 return projectionMatrices;
79859}
79860function createShadowUniforms() {
79861 var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
79862 var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
79863 var uniforms = {
79864 shadow_uDrawShadowMap: Boolean(opts.drawToShadowMap),
79865 shadow_uUseShadowMap: opts.shadowMaps ? opts.shadowMaps.length > 0 : false,
79866 shadow_uColor: opts.shadowColor || DEFAULT_SHADOW_COLOR,
79867 shadow_uLightId: opts.shadowLightId || 0,
79868 shadow_uLightCount: opts.shadowMatrices.length
79869 };
79870 var center = getMemoizedViewportCenterPosition({
79871 viewport: opts.viewport,
79872 center: context.project_uCenter
79873 });
79874 var projectCenters = [];
79875 var viewProjectionMatrices = getMemoizedViewProjectionMatrices({
79876 shadowMatrices: opts.shadowMatrices,
79877 viewport: opts.viewport
79878 }).slice();
79879 for(var i = 0; i < opts.shadowMatrices.length; i++){
79880 var viewProjectionMatrix = viewProjectionMatrices[i];
79881 var viewProjectionMatrixCentered = viewProjectionMatrix.clone().translate(new (0, _mathGl.Vector3)(opts.viewport.center).negate());
79882 if (context.project_uCoordinateSystem === (0, _constants.COORDINATE_SYSTEM).LNGLAT && context.project_uProjectionMode === (0, _constants.PROJECTION_MODE).WEB_MERCATOR) {
79883 viewProjectionMatrices[i] = viewProjectionMatrixCentered;
79884 projectCenters[i] = center;
79885 } else {
79886 viewProjectionMatrices[i] = viewProjectionMatrix.clone().multiplyRight(VECTOR_TO_POINT_MATRIX);
79887 projectCenters[i] = viewProjectionMatrixCentered.transform(center);
79888 }
79889 }
79890 for(var _i = 0; _i < viewProjectionMatrices.length; _i++){
79891 uniforms["shadow_uViewProjectionMatrices[".concat(_i, "]")] = viewProjectionMatrices[_i];
79892 uniforms["shadow_uProjectCenters[".concat(_i, "]")] = projectCenters[_i];
79893 if (opts.shadowMaps && opts.shadowMaps.length > 0) uniforms["shadow_uShadowMap".concat(_i)] = opts.shadowMaps[_i];
79894 else uniforms["shadow_uShadowMap".concat(_i)] = opts.dummyShadowMap;
79895 }
79896 return uniforms;
79897}
79898exports.default = {
79899 name: "shadow",
79900 dependencies: [

Callers 1

sanddance-app.jsFile · 0.70

Calls 5

translateMethod · 0.45
cloneMethod · 0.45
negateMethod · 0.45
multiplyRightMethod · 0.45
transformMethod · 0.45

Tested by

no test coverage detected