Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 7
Всего онлайн: 7
Зарегистрировано юзеров: 7550
Комментариев на сайте: 670
Новый юзер: dolginaolha



Последние комментарии
c
Amard прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Всем привет! В Школе Частных Прорабов Prorab2.ru обучают как сделать дешевый и недорогой фундамент своими руками используя Строительные Нормы и Правила (СНиП), технологии для фундаментов и Технику Безопасности (ТБ) на объекте с помощью одной из лучших онлайн школ в мире ,а также единственной онлайн школы в России и на просторах бывшего СНГ Вы реально научитесь строить Фундамент за пол цены от рыночной стоимости работ – это не шутка, не розыгрыш и не мечта. Фундамент за 50 процентов – это реальность! Недавно я нашел крутую онлайн школу. Мужики реально крутая школа, все объясняют без заумных слов. Все нужно делать заблаговременно и разумно экономно! Там изучают множество тем о фундаментах. Одна из них: [url=https://prorab2.ru/category/fundament]Фундамент из бруса.[/url] До новых встреч!
CarolineWrifs прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
[img]https://kapsuly-lipocarnit.ru/files/lipocarnit_1/img/product-head1.png[/img] [url=https://kapsuly-lipocarnit.ru/][img]https://karga.info/wp-content/uploads/2019/02/orig.jpg[/img][/url] Lipocarnit (ЛипоКарнит) - [url=https://kapsuly-lipocarnit.ru/]липокарнит капсулы для похудения цена екатеринбург[/url] для похудения в Екатеринбурге Цена: 990 руб. [url=https://kapsuly-lipocarnit.ru/]lipocarnit отзывы[/url] - Полная конфиденциальность Наименование и назначение товара не указаны на посылке. В соответствии с политикой конфиденциальности мы не передаем информацию третьим лицам. Аудио обзоры нашего магазина Липокарнит (LipoKarnit) - капсулы для похудения - описание Кто такие представители прекрасного пола ради похудения? Часы физических упражнений, строгие диеты, даже липосакция. Но, по мнению большинства врачей, лучше всего получить твердое натуральное средство для похудения с гарантированным эффектом. Среди тех, кто заменяет упражнения и осанку, профессионалы включают продукт для похудения Lipocarnit. По словам производителей, любая капсула бьет избыток жира на клеточном уровне, ускоряя обмен веществ и снижая уровень глюкозы в крови. LipoCarnit превращает жир в энергию и снижает уровень холестерина. Это, если верить словам клиентов, приводит к обещанной и быстрой потере веса. Почему мы набираем вес? Есть много причин, почему мы набираем вес. К ним относятся диетические излишки и фиксированный образ жизни и генетическая предрасположенность. Однако наименее реальным бедствием современной цивилизации является изменение в процессе обмена веществ. Нарушение обмена веществ возникает в результате: отсутствие компонентов, пригодных для обработки жировых клеток; сбой в процессе образования и разложения жира; отсутствие деталей, необходимых для осуществления химических реакций. Начальные признаки избыточного веса Дамы считают, что образования с избыточным весом наверняка не будет недостатка. Однако не только стрелки весов способны говорить о неточном ходе жирового обмена. Сначала вес может не измениться, однако другие симптомы нарушения обмена веществ будут наименее очевидными: апельсиновая корка; храп; постоянный аппетит; слабость; высокое кровяное давление; Боли в спине и суставах. Сказать, что все эти плохие реакции на тело означают заботиться о себе! Помогает ли нам бездействие? Если вам кажется, что лишний вес - это не та проблема, из-за которой вы должны изменить свой обычный образ жизни, вот лишь несколько несоответствий, которые могут привести к избыточному весу и неправильному обмену веществ. : высокое кровяное давление; избыток холестерина; уровень сахара в крови; проблемы с поджелудочной железой; Риск склероза и инфаркта миокарда. Не волнуйтесь, получите естественное и неопасное лечение для контроля жира - капсулы Липокарнит. Липокарнит (Li Капсулы ЛипоКарнит разрушают жировые отложения за счет действия состава природного баланса; Липоевая кислота нормализует уровень глюкозы в крови, очищает и сохраняет печень, ускоряет выделение энергии липидными клетками; Pycinate Pycollinate уменьшает чувство голода, расщепляет жир и нормализует кровяное давление; L-карнитин превращает липиды в энергию, снижает уровень холестерина. Поступление таким образом, чтобы улучшить ум, а не состав, значительно уменьшить избыточный вес. И сразу же для похудения не стоит ограничиваться едой. Продукт «переконфигурирует» организм для максимально быстрого удаления жиров и в то же время не вызывает привыкания или побочных эффектов.

Урок 8 - Игровая камера

  В этом уроке я опишу, как сделать игровую камеру, т. е. камера, управляемая при помощи мышки и клавиатуры. Можно будет смотреть во все стороны и передвигаться.

Разбираем код программы:
В раздел Var заносим переменные:

MouseMove1: boolean;
  TempX1,TempY1,SingX,SingY,TempX2,TempY2 : integer;
  Point: Tpoint;
  Camera: TCamera;
В процедуре FormPaint:
try                                                      
if MouseMove1=false then                                 
begin                                                    
GetCursorPos(Point);                                     
TempX1:=point.X;                                         
TempY1:=point.Y;                                         
MouseMove1:=true;                                        
end;                                                     
finally                                                  
                                                         
SetCursorPos(screen.Width div 2,screen.Height div 2); //Центруем курсор
GetCursorPos(Point) ;  //получаем координаты и записываем их в переменную Point
 if MouseMove1=true then                                               
  begin                                                  
TempX2:=point.X;                                         
TempY2:=point.Y;                                         
SingX:=TempX1-TempX2;                                    
SingY:=TempY1-TempY2;                                    
if  (Camera.phiY<=90) and (Camera.phiY>=-90) then        
 begin                                                   
 Camera.phiY:=Camera.phiY+(-SingY/8);                    
 end                                                     
 else                                                    
 begin                                                   
   if Camera.phiY>=90 then  //Ограничения           
  Camera.phiY:=90;          //На 
  if Camera.phiY<=-90 then  //Угол обзора 
  Camera.phiY:=-90;         //По вертикали
  end;                                                 
Camera.phiX:=Camera.phiX+(-SingX/4);                     
TempX1:=0;                                               
TempY1:=0;                                               
TempX2:=0;                                               
TempY2:=0;                                               
SingX:=0;                                                
SingY:=0;                                                
MouseMove1:=false;                                       
 end;                                                    
end;                 

Конструкция try finally здесь обязательна т.к. сначала надо получить координаты курсора и только после этого позволить ему сместится и опять засечь его координаты.

Переменные TempX1 и TempY1 – координаты до смещения.
Переменные TempX2 и TempY2 – координаты после смещения.
Переменные SingX и SingY – разница между предыдущими и новыми координатами.

Для работы кода необходимо создать 2 составных типа переменных:
type

   TVector = record  //Вектор
   X,Y,Z:GLfloat;
   end;


   TCamera = record
   Pos: Tvector;       //Позиция камеры
   PhiY: single;         //вертикальный улол поворота камеры
   PhiX: single;         //горизонтальный
   Speed: glFloat;   //Скорость камеры
   end;
Коэффициенты смещения по горизонтали и вертикали делятся на 4 и 8 – это чувствительность мыши.

Мы будем поворачивать и двигать не камеру а МИР вокруг камеры. Самыми простыми функциями glRotatef и glTranslatef
ВАЖНО: Эти функции нужно вызывать в особом порядке!!!

Сначала повернем мир по вертикале, а потом по горизонтали и совершим перемещение.
glRotatef(-Camera.PhiY-90,1,0,0); //поворот по вертикали
glRotatef(-Camera.PhiX,0,0,1);     //поворот по горизонтали
glTranslatef(-Camera.Pos.X,-Camera.Pos.Y,-Camera.Pos.Z);  //смешение мира
Это нужно делать до отрисовки сцены, позиции источников света тоже надо задавать после. Теперь надо сделать обработку клавиатуры.

В раздел Const:
VK_W = $57;
VK_S = $53;
VK_D = $44;
VK_A = $41;
VK_SHIFT = $10;
VK_SPACE = $20;
В процедуре FormPaint после обработки мыши:
if (GetAsyncKeyState(VK_W)<>0) or (GetAsyncKeyState(VK_S)<>0) or
    (GetAsyncKeyState(VK_D)<>0) or (GetAsyncKeyState(VK_A)<>0)  then
  begin
   Camera.Speed:=0.005;

if (GetAsyncKeyState(VK_W)<>0) then
   begin
    Camera.Pos.X:=Camera.Pos.X+Camera.Speed*cos((Camera.phiX+90)*Pi/180);
    Camera.Pos.Y:=Camera.Pos.Y+Camera.Speed*sin((Camera.phiX+90)*Pi/180);
   end;
     //Назад
   if (GetAsyncKeyState(VK_S)<>0) then
   begin
    Camera.Pos.X:=Camera.Pos.X+Camera.Speed*cos((Camera.phiX-90)*Pi/180);
    Camera.Pos.Y:=Camera.Pos.Y+Camera.Speed*sin((Camera.phiX-90)*Pi/180);
   end;
     //Вправо
   if (GetAsyncKeyState(VK_D)<>0) then
   begin
    Camera.Pos.X:=Camera.Pos.X+Camera.Speed*cos((Camera.phiX)*Pi/180);
    Camera.Pos.Y:=Camera.Pos.Y+Camera.Speed*sin((Camera.phiX)*Pi/180);
   end;
     //Влево
   if (GetAsyncKeyState(VK_A)<>0) then
   begin
    Camera.Pos.X:=Camera.Pos.X+Camera.Speed*cos((Camera.phiX+180)*Pi/180);
    Camera.Pos.Y:=Camera.Pos.Y+Camera.Speed*sin((Camera.phiX+180)*Pi/180);
   end;
  end;
//Вниз
  if (GetAsyncKeyState(VK_SHIFT)<>0) then   Camera.Pos.Z:=Camera.Pos.Z-0.005;
//Вверх
  if (GetAsyncKeyState(VK_SPACE)<>0) then   Camera.Pos.Z:=Camera.Pos.Z+0.005;
Функция GetAsyncKeyState(индекс) отслеживает нажатия клавиш в системе независимо статуса активности приложения.

Управление:

W – Вперёд
S – Назад
A – Влево
D – Вправо
Shift – Вниз
Space – Вверх

И нарисуем сцену:
glBindTexture(GL_TEXTURE_2D,Glass);
RenderBox; //куб

glBindTexture(GL_TEXTURE_2D,Eart);
glBegin(GL_QUADS);
glNormal(0.5,0.5,1);
glTexCoord(0,1); glVertex3f(-10,10,-1.1);
glTexCoord(1,1); glVertex3f(10,10,-1.1);
glTexCoord(1,0); glVertex3f(10,-10,-1.1);
glTexCoord(0,0); glVertex3f(-10,-10,-1.1);
glEnd;
В этом примере появилась новая функция задания перспективы:
gluPerspective(Угол обзора, ClientWidth/ClientHeight,ближайшая точка, дальняя точка);



Осталось только сделать в ObjectIspector параметр Form1.BorderStyle = none и WindowState = maximize. Всё простенькая игра готова.

Зарегистрируйтесь или авторизуйтесь, чтобы скачать.


Источник: www.thedelphi.ru
Автор: Клящицкий Виталий
Опубликовано: 14 Июля 2012
Просмотров: 20642

Урок 7 - Туман Урок 9 - Экспорт .3DS модели из 3DS max 2009 в OpenGL

Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.



аватар Добавил: oktavius [Новичок] Дата: 2012-11-21
А как загрузить карту с 3dMax?




аватар Добавил: Klesh [Программист] Дата: 2012-11-21
Окей, в ближайшее время будет опубликован урок по экспорту модели в формате 3DS из 3ds max.




аватар Добавил: oktavius [Новичок] Дата: 2012-11-22
Отлично буду очень рад)




аватар Добавил: juzhnij [Новичок] Дата: 2013-05-20
У меня возникла проблема с которой я никак не могу справиться - когда я разворачиваюсь в виртуальном пространстве все текстуры начинают просвечиваться насквозь, мне набо накладывать на те же координаты текстуры в обратную сторону или есть проще решение?




аватар Добавил: juzhnij [Новичок] Дата: 2013-05-20
Ну и плюс к этому в движении иногда текстура на текстуру в какой то части накладывается, как будто они по многу раз за кадр прорисовываются.




аватар Добавил: juzhnij [Новичок] Дата: 2013-05-22
Спасибо за неучастие, проблему решил самостоятельно.




аватар Добавил(а): evgen8195 [Новичок] Дата: 2014-05-12
Вопрос: как сделать так чтобы отображался и двигался(!) курсор мыши?




аватар Добавил(а): mrcheat [Новичок] Дата: 2019-02-16
ЧЗХ: Клавиатурное управление не работает(( Чо делать?