我无法尝试将Y的加载网格值设置为X值,以便执行一些非常有限的检测版本。基本上,我将获得相机的X值,并检测我的网格的Y值是否为5。如果是这样......那里有一堵墙。
我用这个加载我的模型:
landscape = Content.Load(“landscape”);
我用这个绘制模型:
foreach (ModelMesh mesh in landscape.Meshes)
{
if (mesh.Name != "Billboards")
{
foreach (BasicEffect effect in mesh.Effects)
{
effect.View = view;
effect.Projection = projection;
effect.LightingEnabled = true;
effect.DirectionalLight0.Enabled = true;
effect.DirectionalLight0.Direction = lightDirection;
effect.DirectionalLight0.DiffuseColor = lightColor;
//if (flashEnabled == true)
//{
effect.DirectionalLight1.Enabled = flashEnabled;
effect.DirectionalLight1.Direction = cameraFront;
effect.DirectionalLight1.DiffuseColor = lightColor;
effect.DirectionalLight1.SpecularColor = colorFlashLight.ToVector3();
//}
effect.AmbientLightColor = ambientLightColor;
effect.FogEnabled = fogEnabled;
effect.FogColor = color.ToVector3();
effect.FogStart = 9.75f;
effect.FogEnd = 10.25f;
}
device.BlendState = BlendState.Opaque;
device.DepthStencilState = DepthStencilState.Default;
device.RasterizerState = RasterizerState.CullCounterClockwise;
mesh.Draw();
}
继续,在我的更新或输入函数中,我将运行一个评估函数来确定LandscapeVertexY @ CameraX是否大于值5。
任何帮助?
答案 0 :(得分:0)
如果我正确理解你的问题,你试图通过使用指定的相机来检索顶点的渲染位置。
在这种情况下,您需要使用矩阵乘法在坐标空间中手动投影顶点的位置。这可以通过将位置与模型 - 视图 - 投影矩阵相乘来完成。 (可以使用XNA矩阵和向量完成。)