示例#1
0
    public FigureSystemOutputs UpdateFrame(DeviceContext context, FigureSystemOutputs parentOutputs, ChannelInputs inputs)
    {
        var channelOutputs = definition.ChannelSystem.Evaluate(parentOutputs?.ChannelOutputs, inputs);

        StagedSkinningTransform[] boneTransforms;
        if (parentOutputs == null)
        {
            boneTransforms = definition.BoneSystem.GetBoneTransforms(channelOutputs);
        }
        else
        {
            boneTransforms = (StagedSkinningTransform[])parentOutputs.BoneTransforms.Clone();
            BoneSystem.PrependChildToParentBindPoseTransforms(definition.ChildToParentBindPoseTransforms, boneTransforms);
        }

        occluder.SetValues(context, channelOutputs);
        shaper.SetValues(context, channelOutputs, boneTransforms);

        return(new FigureSystemOutputs(channelOutputs, boneTransforms));
    }