コード例 #1
0
        public CGfxCamera()
        {
            mCoreObject     = NewNativeObjectByName <NativePointer>($"{CEngine.NativeNS}::GfxCamera");
            mFrustum        = new CFrustum(this, SDK_GfxCamera_GetFrustum(mCoreObject));
            mCullingFrustum = new CFrustum(this);

            unsafe
            {
                mCameraData       = new CameraDataSet(SDK_GfxCamera_GetLogicData(mCoreObject));
                mCameraRenderData = new CameraDataSet(SDK_GfxCamera_GetRenderData(mCoreObject));
            }
        }
コード例 #2
0
        public void PushVisibleMesh2ShadowLayer(CFrustum cam_frustum)
        {
            for (int Idx_VisibleShadowMesh = 0; Idx_VisibleShadowMesh < mVisibleSceneMeshArray_Shadow.Count; Idx_VisibleShadowMesh++)
            {
                if (cam_frustum.WhichContainType(ref mVisibleSceneMeshArray_Shadow[Idx_VisibleShadowMesh].HostActor.Placement.ActorAABB, false) == CFrustum.CONTAIN_TYPE.CONTAIN_TEST_OUTER)
                {
                    continue;
                }

                for (UInt32 Idx_MtlMesh = 0; Idx_MtlMesh < mVisibleSceneMeshArray_Shadow[Idx_VisibleShadowMesh].MtlMeshArray.Length; Idx_MtlMesh++)
                {
                    var MtlMesh = this.mVisibleSceneMeshArray_Shadow[Idx_VisibleShadowMesh].MtlMeshArray[Idx_MtlMesh];
                    if (MtlMesh == null || MtlMesh.Visible == false)
                    {
                        continue;
                    }
                    if (MtlMesh.MtlInst.mRenderLayer == ERenderLayer.RL_Opaque || MtlMesh.MtlInst.mRenderLayer == ERenderLayer.RL_CustomOpaque /*||
                                                                                                                                                * MtlMesh.MtlInst.mRenderLayer == ERenderLayer.RL_CustomTranslucent*/)
                    {
                        this.mSceneRenderLayer[(int)ERenderLayer.RL_Shadow].AddRenderLayerAtom(MtlMesh);
                    }
                }
            }
        }
コード例 #3
0
 public void CopyFrustum(CFrustum dest)
 {
     SDK_v3dxFrustum_CopyFrustum(CoreObject, dest.CoreObject);
 }