コード例 #1
0
        protected override void InitializeCore()
        {
            base.InitializeCore();

            if (SceneCameraRenderer == null)
            {
                return;
            }

            var forwardMode = SceneCameraRenderer.Mode;
            var effectName  = forwardMode.ModelEffect;

            if (effectName == null)
            {
                throw new InvalidOperationException("ModelEffect cannot be null");
            }

            isPickingRendering = Context.IsPicking();
            if (isPickingRendering)
            {
                effectName += ".Picking";
                Context.Parameters.Set(XenkoEffectBaseKeys.ExtensionPostVertexStageShader, PickingEffect);
            }

            modelRenderer.EffectName = effectName;
            modelRenderer            = ToLoadAndUnload(modelRenderer);

            // Setup the ModelComponentRenderer as the main renderer for the scene Camera Renderer
            // This is used by the LightComponentForwardRenderer
            // TODO: Check if we could discover declared renderers in a better way than just hacking the tags of a component
            ModelComponentRenderer.Attach(SceneCameraRenderer, modelRenderer);
        }