из куба сферу

Speed Tree : Terrain & Trees.

Re: из куба сферу

Сообщение Cyrix 14 окт 2018, 21:58

IDoNotExist писал(а):
координата вершины минус центр планеты, нормализовать и умножить на радиус планеты.


что нормализовать? Центр планеты? Как это сделать?
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Re: из куба сферу

Сообщение Paul Siberdt 15 окт 2018, 10:32

Нормализуют, как правило, вектор, то есть, приводят его к единичной магнитуде при сохранении направления.

Если вы не знаете про нормализацию, вам слишком рано замышлять проекты с процедурными и, тем более, прогрессивными мешами.
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: из куба сферу

Сообщение Cyrix 15 окт 2018, 15:44

"координата вершины минус центр планеты" - это вектор? Его нужно привести к единице и умножить на радиус планеты?
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Re: из куба сферу

Сообщение Paul Siberdt 15 окт 2018, 16:08

То есть, вы, все же, не понимаете, о чем вам говорят. :)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: из куба сферу

Сообщение Cyrix 15 окт 2018, 16:12

Paul Siberdt писал(а):То есть, вы, все же, не понимаете, о чем вам говорят. :)


неа... не понимаю. Можно как нибудь на пальцах или в виде кода? Вот есть сфера с радиусом 5, рядом со сферой расположена плоскость с 128-ю вершинами, как мне каждую вершину "притянуть" к поверхности сферы, чтобы наложить эту плоскость на сферу?
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Re: из куба сферу

Сообщение IDoNotExist 15 окт 2018, 16:14

Cyrix писал(а):"координата вершины минус центр планеты" - это вектор? Его нужно привести к единице и умножить на радиус планеты?

Именно это я и имел в виду, это и есть простейшая проекция вершины на сферу.
Млин, совсем забыл, после этого центр планеты нужно сложить с получившимся вектором.

Как то так:
Синтаксис:
Используется csharp

float planetRadius = 5f;
Vector3 planetCenter = Vector3.zero;
foreach(Vector3 vert in mesh.vertices)
{
     Vector3 projVector = (vert - planetCenter).normalized * planetRadius;
     Vector3 projVert = planetCenter + projVector;
}
 
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: из куба сферу

Сообщение Cyrix 15 окт 2018, 22:45

Не ложиться почему-то моя плоскость на сферу :-\
Синтаксис:
Используется csharp
using UnityEngine;
using UnityEditor;
using System.Collections;

        public class deform : MonoBehaviour
        {
                [InspectorButton("OnButtonClicked")]
                public bool GENERATE;
               
                private void OnButtonClicked()
                {
                Mesh mesh = GetComponent<MeshFilter>().sharedMesh;
                GameObject planeta = GameObject.Find("Sphere");
                Vector3 centr = planeta.GetComponent<Renderer>().bounds.center;

                Vector3[] vertices = mesh.vertices;
                int i = 0;

                        foreach(Vector3 vert in vertices)
                        {
                                Vector3 projVector = (vert - centr).normalized * 5f;
                                Vector3 projVert = centr + projVector;
                //      Debug.Log (projVert.z);
                                vertices[i].z = projVert.z;
                        i++;
                        }

                mesh.RecalculateBounds();
                mesh.RecalculateNormals();
                SceneView.RepaintAll();

                }
        }
 
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Re: из куба сферу

Сообщение Cyrix 15 окт 2018, 23:26

ошибок никаких не пишет, но и ничего не происходит с вершинами. Скрипт вешаю на плоскость из 64-х вершин
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Re: из куба сферу

Сообщение Tolking 15 окт 2018, 23:28

Обратно мешу присвоить массив точек нужно...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2714
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: из куба сферу

Сообщение Cyrix 16 окт 2018, 00:20

дописал
Синтаксис:
Используется csharp
mesh.vertices = vertices;
 


плоскость изогнулась, но совсем не по сфере


Join 4Shared Now!
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Re: из куба сферу

Сообщение waruiyume 16 окт 2018, 00:39

Вершины получаемые из меша находятся в локальном пространстве, а центр в мировом, нужно сначала трансформировать позиции в мировое пространство, произвести манипуляции, трансформировать в локальное пространство, а уже потом присвоить обратно мешу.
Transform.InverseTransformPoint
Transform.TransformPoint
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: из куба сферу

Сообщение IDoNotExist 16 окт 2018, 08:45

Cyrix писал(а):vertices[i].z = projVert.z;

Што это?

vertices[i] = projVert;
И никаких z;
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: из куба сферу

Сообщение Cyrix 16 окт 2018, 10:11

waruiyume писал(а):Вершины получаемые из меша находятся в локальном пространстве, а центр в мировом, нужно сначала трансформировать позиции в мировое пространство, произвести манипуляции, трансформировать в локальное пространство, а уже потом присвоить обратно мешу.
Transform.InverseTransformPoint
Transform.TransformPoint


Чёт не могу сообразить, в каком месте поставить Transform.InverseTransformPoint и в каком Transform.TransformPoint
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Re: из куба сферу

Сообщение IDoNotExist 16 окт 2018, 10:38

Cyrix писал(а):Чёт не могу сообразить, в каком месте поставить Transform.InverseTransformPoint и в каком Transform.TransformPoint

Достаточно центр привести в локальные коорд-ты:
Синтаксис:
Используется csharp
Vector3 centr = transform.InverseTransformPoint (planeta.GetComponent<Renderer>().bounds.center);
 
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: из куба сферу

Сообщение Cyrix 16 окт 2018, 11:28

Ура товарищи!!! Моя плоскость всё-же легла на сферу! Но вот пивот ускакал куда-то далеко от плоскости. Можно его как-то вернуть на плоскость?
Cyrix
UNIт
 
Сообщения: 116
Зарегистрирован: 16 сен 2009, 11:32

Пред.След.

Вернуться в Земля и деревья.

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 0