【问题标题】:How do i create multiple vertices from an object?如何从一个对象创建多个顶点?
【发布时间】:2016-08-21 01:05:49
【问题描述】:

我在如何将对象/模型(Quad)的顶点乘以跨轴(Z 或 X)时遇到了一些麻烦,就像在 Pic1 中一样,我从对象/模型(Quad)收集顶点然后复制沿轴的顶点(但三角形也可以接受),我在执行此操作时遇到了麻烦,结果在 Pic2 中。

有人知道怎么做吗?

-Pic1.(我想要实现的目标)

-Pic2.(我得到的结果)

这里是代码,所以你知道我做了什么。

using UnityEngine;
using System.Collections;

public class Extruder : MonoBehaviour {

public Mesh prefab;
public int length;
private Mesh mesh;

private Vector3[] vertices;
private Vector3[] mv;
// Use this for initialization
void Start()
{

    vertices = prefab.vertices;
    Generate();
}
// Update is called once per frame
void Generate () {

    vertices = new Vector3[(length)];
    for (int i = 0, x = 0; x <= length; i++, x++)
    {
        vertices[i] = new Vector3(0, 0, x);
    }
    mesh.vertices = vertices;
}
private void OnDrawGizmos()
{
    Gizmos.color = Color.black;
    for (int i = 0; i < vertices.Length; i++)
    {
        Gizmos.DrawSphere(vertices[i], 0.1f);
    }
}
}

【问题讨论】:

    标签: c# unity3d vertices multiplication


    【解决方案1】:

    编辑:为 Unity 创建顶点数组的资源:

    这些都很好,而且最近:

    http://jayelinda.com/modelling-by-numbers-part-1a/

    http://catlikecoding.com/unity/tutorials/procedural-grid/


    它完全按照你的要求做。

    你说:

    沿 Z 轴绘制点。 (0,0,1), (0,0,2), (0,0,3), (0,0,4) .. 等等

    我想你想要的是:

    沿 Z 轴从原点开始绘制点偏移量。 (x+0, y+0, z+1), (x+0, y+0, z+2), (x+0, y+0, z+3)...等

    所以,你有很多代码要写:

    1. 从网格中读取顶点(你的代码在哪里?你还没有这样做)
    2. 对于每个顶点,读取 x、y 和 z 坐标(同上)
    3. 对于每个顶点,添加到 z 坐标而不是 x 和 y

    当然,您只能这样做一次。在那之后,网格不再是 Z=0 平面中的平面四边形,并且您的“挤出”会以指数方式挤出,并且会出现严重错误。可能你应该在开始之前检查网格最多有 4 个顶点(除了一些四边形有 6 个顶点...)

    但是。

    这不是网格的工作方式。

    您至少缺少大约 20-100 行代码。寻找一些关于程序网格生成的教程。

    所有额外的步骤都不是可选的!如果你错过了它们,有时 Unity 会出错,但通常它会默默地破坏网格,和/或破坏你的照明,和/或什么都不渲染。如果您忘记执行大多数步骤,则不会出现错误消息!

    至少,您必须:

    1. 每个顶点都有一个 Vector3
    2. 每个三角形有一组 3 个整数

    ...没有它,Unity 几乎不可能做任何事情。

    为了让 Unity 渲染它而不会崩溃,您还需要:

    1. 每个顶点的法线
    2. 正确配置法线的规范化例程(Unity 不会自动执行此操作)
    3. 每个顶点都有一个 U,V

    【讨论】:

    • 你说的地方 1. 从网格中读取顶点(你的代码在哪里?你还没有这样做)这正是我想学的(我很确定)i知道怎么做剩下的。无论如何,我在程序网格生成上搜索了很长时间,但一无所获。你知道有什么好的网站可以了解这个主题吗?
    • 我每次在 Google 的前几次点击中都发现了这个(更新的答案,见顶部)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2022-11-15
    • 2011-04-28
    • 2021-05-04
    相关资源
    最近更新 更多