Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Unity3D中制作参数化形状,使其能够以真实质量烘焙_C#_Unity3d_Shader_Rendering - Fatal编程技术网

C# 如何在Unity3D中制作参数化形状,使其能够以真实质量烘焙

C# 如何在Unity3D中制作参数化形状,使其能够以真实质量烘焙,c#,unity3d,shader,rendering,C#,Unity3d,Shader,Rendering,我正在使用Unity C#脚本创建形状。 我的形状可以像长方体(6个面没有圆角)、曲线和多边形。 我用创建新网格和网格过滤器等基本方法创建形状。然后将UV、法线、顶点等指定给网格。通常一个立方体形状包含24个顶点。但当我烘焙场景时,这些形状并没有给我真实的效果。 现在我烘焙后的输出场景如下 我的箱子详细资料如下 这是我的代码示例 private void Awake() { GameObject Shape = new GameObject("Cup

我正在使用Unity C#脚本创建形状。 我的形状可以像长方体(6个面没有圆角)、曲线和多边形。 我用创建新网格和网格过滤器等基本方法创建形状。然后将UV、法线、顶点等指定给网格。通常一个立方体形状包含24个顶点。但当我烘焙场景时,这些形状并没有给我真实的效果。 现在我烘焙后的输出场景如下

我的箱子详细资料如下

这是我的代码示例

    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中的几何体节点功能以获得灵感。