C# 如何在Unity3D中制作参数化形状,使其能够以真实质量烘焙
我正在使用Unity C#脚本创建形状。 我的形状可以像长方体(6个面没有圆角)、曲线和多边形。 我用创建新网格和网格过滤器等基本方法创建形状。然后将UV、法线、顶点等指定给网格。通常一个立方体形状包含24个顶点。但当我烘焙场景时,这些形状并没有给我真实的效果。 现在我烘焙后的输出场景如下 我的箱子详细资料如下 这是我的代码示例C# 如何在Unity3D中制作参数化形状,使其能够以真实质量烘焙,c#,unity3d,shader,rendering,C#,Unity3d,Shader,Rendering,我正在使用Unity C#脚本创建形状。 我的形状可以像长方体(6个面没有圆角)、曲线和多边形。 我用创建新网格和网格过滤器等基本方法创建形状。然后将UV、法线、顶点等指定给网格。通常一个立方体形状包含24个顶点。但当我烘焙场景时,这些形状并没有给我真实的效果。 现在我烘焙后的输出场景如下 我的箱子详细资料如下 这是我的代码示例 private void Awake() { GameObject Shape = new GameObject("Cup
private void Awake()
{
GameObject Shape = new GameObject("Cupboard");
MeshRenderer mr = Shape.AddComponent<MeshRenderer>();
mr.material = Material;
MeshFilter meshFilter = Shape.AddComponent<MeshFilter>();
meshFilter.mesh.Clear();
Mesh mesh = new Mesh();
mesh.vertices = Vertices();
//It return vertices of each face (total 24)
// 1 face= 4 corners
// 1 corner = 3 points(x,y,z)
// 1 box have total 8 corners. So 8x3=24
mesh.triangles = Triangles();
// this function will return traingles (total 12 traingles)
// 1 face = 2 triangles
// 1 box have total 6 faces. So 6x2=12
mesh.uv = UV(); // returns UVs for each face
meshFilter.mesh = mesh;
mesh.RecalculateNormals();
}
private void Awake()
{
游戏对象形状=新游戏对象(“橱柜”);
MeshRenderer mr=Shape.AddComponent();
mr.material=material;
MeshFilter MeshFilter=Shape.AddComponent();
meshFilter.mesh.Clear();
网格=新网格();
mesh.vertices=顶点();
//它返回每个面的顶点(总共24个)
//1个面=4个角
//1个角点=3个点(x、y、z)
//1个盒子共有8个角。因此8x3=24
mesh.triangles=三角形();
//此功能将返回traingles(总共12个traingles)
//1个面=2个三角形
//1个盒子共有6个面。因此6x2=12
mesh.uv=uv();//返回每个面的uv
meshFilter.mesh=网格;
mesh.normals();
}
我想要这种输出。
如果我使用一些预先制作的FBX模型,这些模型比我用Unity3D脚本创建的模型效果更好。有人能指导我如何使之成为可能吗?
请忽略我无法在运行时烘焙或这可能需要很长时间。
我的目标是显示某种输出。如何使用脚本生成形状,从而提供这种输出
如果此方法不适用,那么在哪里可以绘制一个框,用于在Unity3d中烘焙后获得真实输出?我只想让unity3d烘焙。那就用更好的模型吧?有点不清楚你到底在问什么。。。你不能期望一个由24个顶点组成的立方体与你链接的视频中的模型具有相同的细节……我将更新questoin,你可以再次阅读这是关于照明还是关于几何体的问题?@LeoBartkus Yes生成几何体是一个大项目。查看blender中的几何体节点功能以获得灵感。