Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нахождение нормали вершины 
:(
    Опции темы
antoniobanderas
Дата 4.10.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



Люди правильно ли я нахожу нормали
вот код:
Код

procedure Mesh.CalcNormals;
var
  i:int;
begin
  for i:=1 to NumVertex
  do begin
       Vertices[i].Normal.x:=0;
       Vertices[i].Normal.y:=0;
       Vertices[i].Normal.z:=0;
     end;

  for i:=1 to NumFace
  do Faces[i].CalcNormal;

  for i:=1 to NumFace
  do begin
       Faces[i].v1^.Normal.x+:=Faces[i].Normal.x;
       Faces[i].v1^.Normal.y+:=Faces[i].Normal.y;
       Faces[i].v1^.Normal.z+:=Faces[i].Normal.z;
       Faces[i].v2^.Normal.x+:=Faces[i].Normal.x;
       Faces[i].v2^.Normal.y+:=Faces[i].Normal.y;
       Faces[i].v2^.Normal.z+:=Faces[i].Normal.z;
       Faces[i].v3^.Normal.x+:=Faces[i].Normal.x;
       Faces[i].v3^.Normal.y+:=Faces[i].Normal.y;
       Faces[i].v3^.Normal.z+:=Faces[i].Normal.z;

       Faces[i].v1^.TransformedNormal.x:=Faces[i].v1^.Normal.x;
       Faces[i].v1^.TransformedNormal.y:=Faces[i].v1^.Normal.y;
       Faces[i].v1^.TransformedNormal.z:=Faces[i].v1^.Normal.z;
       Faces[i].v2^.TransformedNormal.x:=Faces[i].v2^.Normal.x;
       Faces[i].v2^.TransformedNormal.y:=Faces[i].v2^.Normal.y;
       Faces[i].v2^.TransformedNormal.z:=Faces[i].v2^.Normal.z;
       Faces[i].v3^.TransformedNormal.x:=Faces[i].v3^.Normal.x;
       Faces[i].v3^.TransformedNormal.y:=Faces[i].v3^.Normal.y;
       Faces[i].v3^.TransformedNormal.z:=Faces[i].v3^.Normal.z;
     end;

end;


И еще дайте пожалуйста процедуру гуро закраски а то моя че-то нетак работает а в нете все на ассемблере
заранее спасибо
PM MAIL   Вверх
maxim1000
Дата 4.10.2006, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



а что подразумевается под нормалью вершины?

P.S.
Цитата(antoniobanderas @  4.10.2006,  16:40 Найти цитируемый пост)
И еще дайте пожалуйста процедуру гуро закраски а то моя че-то нетак работает а в нете все на ассемблере
заранее спасибо

для этого лучше создать отдельную тему, чтобы не смешивать разные обсуждения...


--------------------
qqq
PM WWW   Вверх
antoniobanderas
Дата 4.10.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



Цитата

а что подразумевается под нормалью вершины?

нормаль вершины это вектор направленный из вершины но он не обязательно паралельный нормали грани
Цитата

для этого лучше создать отдельную тему, чтобы не смешивать разные обсуждения... 


ок
PM MAIL   Вверх
Sartorius
Дата 4.10.2006, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 1
Всего: 37



Цитата


нормаль вершины это вектор направленный из вершины но он не обязательно паралельный нормали грани



 Если честно, то ничего не понятно. Это не определиние... Напиши подробней, а то у тебя получается любой вектор из вершины - это нормаль smile 
PM MAIL ICQ   Вверх
maxim1000
Дата 4.10.2006, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



насколько я понял из кода, нормаль вершины считается, как среднее нормалей примыкающих граней
однако, ещё нужно разобраться с направлением них нормалей (у нормали грани может быть два противоположных направления), т.к. разный их выбор может дать совсем разные направления (даже не колинеарные)


--------------------
qqq
PM WWW   Вверх
antoniobanderas
Дата 4.10.2006, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



есть допустив две смежных грани, у них есть две нормали нормали грани, возьмем вершину котороя принадлежит обоим граням, нормаль вершины находится как сумма нормалей всех граней которым она принадлежит
это нужно для гуро закраски

Добавлено @ 18:18 
направление определяется порядком указания вершин
а нормаль грани находится как векторное произведение двух векторов лежащих в плоскости грани

PM MAIL   Вверх
maxim1000
Дата 4.10.2006, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



ну тогда похоже на правду...
но опять же, вершины для каждой грани должны быть перечислены так, чтобы ориентация была согласована (т.е. не было части нормалей в одну сторону, части в другую)...


--------------------
qqq
PM WWW   Вверх
antoniobanderas
Дата 4.10.2006, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 4.10.2006

Репутация: нет
Всего: нет



все согласовано  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0717 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.