Калужский межсетевой форум: OpenGL - Калужский межсетевой форум

Перейти к содержимому




Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

OpenGL

#1 Пользователь офлайн   Uber 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 16
  • Регистрация: 17 October 07

Отправлено 08 March 2009 - 23:31

Здраствуйте!!! ВОзникла следующая проблема. Не получается настроить освещение для поверхности в OpenGL.какието проблемы с нормалями.

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



освещаются только с лицевой стороны. Помогите разобраться с проблемой. Заранее Спасибо!!!



for i:=1 to 10 do

 for j:=1 to 10 do begin



   glbegin(gl_quads)

  VekX:=ctrlpoints[i][j][0]-ctrlpoints[i][1+j][0];VekY:=ctrlpoints[i][j][1]-ctrlpoints[i][1+j][1];VekZ: =ctrlpoints[i][j][2]-ctrlpoints[i][1+j][2];

   



VekX1:=ctrlpoints[i][+j][0]-ctrlpoints[1+i][+j][0];VekY1:=ctrlpoints[i][+j][1]-ctrlpoints[1+i][j][1]; VekZ1:=ctrlpoints[i][+j][2]-ctrlpoints[1+i][+j][2];

NormalX:=(VekY*VekZ1-VekZ*VekY1);

NormalY:=(VekZ*VekX1-VekX*VekZ1);

NormalZ:=(VekX*VekY1-VekY*VekX);

DLin:=SQRT(SQR(NormalX)+SQR(NormalY)+SQR(NormalZ));

glNormal3f((NormalX)/Dlin,(Normaly)/Dlin,(NormalZ)/Dlin);



 glVertex3f(ctrlpoints[i][j][0],ctrlpoints[i][j][1],ctrlpoints[i][+j][2]);//1

 glVertex3f(ctrlpoints[i+1][+j][0],ctrlpoints[i+1][+j][1],ctrlpoints[i+1][+j][2]);//2

 glVertex3f(ctrlpoints[i+1][1+j][0],ctrlpoints[i+1][1+j][1],ctrlpoints[i+1][1+j][2]); //3

 glVertex3f(ctrlpoints[i][1+j][0],ctrlpoints[i][1+j][1],ctrlpoints[i][1+j][2]); //4



 glend;

end;
0

#2 Пользователь офлайн   Uber 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 16
  • Регистрация: 17 October 07

Отправлено 08 March 2009 - 23:33

Изображение



Вот как это выглядит....
0

#3 Пользователь офлайн   Uber 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 16
  • Регистрация: 17 October 07

Отправлено 09 March 2009 - 23:53

сам нашёл , сам исправил...
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему





1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей