Новые уроки OpenGL и мультимедиаGLFW. Скелет OpenGL приложения со сглаживанием.

Создание OpenGL приложения с полноэкранным сглаживанием используя GLFW


Читать дальше

Блог им. ProCoderИгровой движок

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

Спасибо вашему сайту за загрузчик моделей ASE.

Дополняйте, оценевайте, неругайтесь.

Буду благодарен за помощь в развитии проекта.
Читать дальше

Блог им. isaerSnake

ну вот собственно и игра =)
вот только у меня сломан микрофон, так что никак не могу все эт дело заснять так что выложу код и архив в бинарником
Читать дальше
  • +1
  • isaer
  • 26 ноября 2011, 16:00

WebGLтопик-ссылка Прикольные приложения на WebGL

Очень классные приложения на WebGL, впечатляющее своей сложностью и качеством. При том все в браузере))) Еще очень понравились выложенные в комментах приложения. Короче есть на, что посмотреть=)

Вопросы OpenGL + C#.Какой игровой движок будет предпочтительнее?

Какой игровой движок будет предпочтительнее?

Привет Всем!

Хотел узнать, какой игровой движок лучше изучать/использовать. Я знаю основы OpenGL вплоть до некоторых возможностей OpenGL 2.0 без шейдеров, написал пару очень простых игр, шахматы с немного недоделанным и туповатым ИИ, змейку, и типо астеройд. Писал на C++ используя GLUT или freeglut, GLEW, audiostate.
Теперь хочу написать что нибудь посерьезнее и поинтереснее, но никак не могу решиться — изучать, и еще раз изучать API какого-то бесплатного движка.

К примеру:

Run3, Delta3D, Unity, Crystal Space, clanlib, Cube 2
Или же писать чисто по игре как делал раньше, на чистом GL. Или все таки написать примитивный движок для моих целей, конкретного жанра.
Просто взглянув на референсы и екземплы(простые) движков я увидел, что там кода не на много меньше, чем я бы писал на чистом OGL. При том, что делает код не совсем ясно, и мне кажется, что я долго буду изучать любой двиг. И хотелось бы либо помучатся и изучить какой нить не плохой, халявный двиг, чтоб в преть им и пользоваться. Либо всетаки не мучатся с изучением не привычных вещей и продолжить изучать OGL и писать либо свой примитивный двиг, либо писать на чистом OGL для конкретных целей, жанра.
Сразу уточню, меня больше интересуют маленькие, простые игры, казуалки.
Хотелось бы продвинуться в игростроении, но какой путь избрать? Зависеть от движка, или же от собственных знаний?! И так ли двиг упрощает разработку простых игр???
Что можете подсказать?
  • +1
  • darkx
  • 13 ноября 2011, 20:17

Вопросы OpenGL + C#.Анонс урока

ой, 3 дня решался написать анонс, вот решился =))
хочу сделать урок по созданию… хм… змейки?
угу змейки, все ее смогут написать, но все же, для новичков все таки подайдет, и еще хочу узнать про мою организацию кода да и вобще просто хочу написать что нить.
буду писать на чистом OGL и C++ больше ничего
вот не знаю, делать как в виде витдео урока или текстового

игра там вобще легкая, так что все будет в 1 cpp файле, так что не особо много, уловить все просто помоему будет, не хочу заморачиваться с гиганским кодом, так как сейчас уже испробовал писать все гиганско с двигом, получается очень громоздко и много ненужного

видео:
+ нет граматических ошибок
+ нет тупой ненужной информации
+ более понятно объяснено
+ наглядно
+ делается быстрее

— возможны проблемы со звуком
— какая нить хрень с видео (типа плохого качества)
— весит все таки много
— какие нить посторонние звуки
— затупы

текст:

+ весит мало
+ нет звуков
+ нет затупов

— читать впадлу
— долго делается
— возможно что вобще нихрена не понятно что я написал
— ненаглядно, самому догадываться что происходит

ну вот, выбирайте как делать, урок буду делать после того как допишу игру которую сейчас дописываю
  • +1
  • isaer
  • 27 сентября 2011, 23:09

Электронные книги по OpenGLРазработка и отладка шейдеров (GLSL)


Автор: Алексей Боресков
Название: Разработка и отладка шейдеров
Язык: Русский
Год: 2006
Формат: DJVU
Качество: высокое, 600 dpi

Читать дальше

Электронные книги по OpenGLOpenGL Game Development

Книга по разработке игр с помощью OpenGL

Описание и оглавление

Формат: pdf
Тип: для ознакомления перед покупкой
Размер: ~ 6.2 Mb
Язык: Английский
Год 2005

Читать дальше

Вопросы OpenGL + C#.видимость полигона или вершины

Здравствуйте!
Хочу узнать, есть ли процедура, с помощью которой в OpenGl можно определить отображается полигон или вершина в данный момент на экране или нет?
Это мне нужно для определения проекции сцены на направление наблюдения. Или посоветуйте, если есть какой-то более простой способ.
Заранее спасибо!
  • +2
  • -nad-
  • 19 июля 2011, 17:52

Создание игр3D API Molehill и Flash Player 11 - крутотенюшка

аппаратное 3D во flash 11Кто бы как не любил adobe, но он однозначно создал революционные для своего времени инструменты и продолжает работать, пока другие только и могут что кричать :)

Кстати, свою первую игру (2D шутер) написал на Flash 5 / action script :)

Под катом подробности и потрясающее видео всего этого дела.



Читать дальше
  • +3
  • Anvi
  • 28 февраля 2011, 14:28

LinuxКомпилируем в Ubuntu

В этом уроке разберем как установить IDE Code::Blocks, все необходимые нам библиотеки и скомпилировать проект.

Читать дальше
  • +3
  • isaer
  • 05 февраля 2011, 08:31

Игры и движки2.1 SystemCore - Application

2.1 SystemCore — Application

Думаю из названия понятно, что в этом уроке будет рассматриваться системное ядро, а конкретнее его составляющая — приложение.
Читать дальше
  • +5
  • isaer
  • 03 февраля 2011, 02:34

Игры и движки1.0 Разбираем двиг

1.0 Разбираем двиг

В этом уроке разберем основы двига, что это, зачем он нужен, что в него входит.
Читать дальше
  • +2
  • isaer
  • 02 февраля 2011, 14:30

Блог им. isaerАнонс

Скоро напишу урок по двигу, совсем еще толком не знаю про что там буду писать, но буду писать =)) что нить на ходу придумаю, так что в ближайшее время ждите что нить прикольное
  • +3
  • isaer
  • 01 февраля 2011, 00:48

Блог им. OniKyРастительность

У кого нибудь есть идеи как такое можно реализовать? Дерево, Трава Очень хочу такое сделать =)
  • 0
  • OniKy
  • 22 января 2011, 01:45

Блог им. OniKyРендер в текстуру

Интересно как это реализовать? чтоб вторая камера снимала что-то, и то что снимает отображалось на текстуре в реал тайм?
  • 0
  • OniKy
  • 21 января 2011, 23:53

Блог им. RaTySЗапуск приложений , использующих Opengl

Добрый день,

Чтобы скомпилировать проект, использующий опенжл необходимо:
1.Установить TAO Framework
2.Подключить библиотеки:
TAO.Freglut.dll
TAO.OpenGL.dll
TAO.Platforms.Windows
3.Скопировать в папку Windows:
freeglut.dll

Какже теперь запустить скомпилированный экзешник на другом компьютере? Желательно без установки TAO Framework

Большое спасибо
  • +1
  • RaTyS
  • 21 января 2011, 20:14

Новые уроки OpenGL и мультимедиаКонкурс уроков по OpenGL / gamedev.

Всем привет.

Собственно тема — конкурс уроков по OpenGL с углублением в gamedev.


Читать дальше
  • +5
  • Anvi
  • 18 января 2011, 08:03

Новые уроки OpenGL и мультимедиаУрок по созданию класса Камеры

Камера.


В этом уроке мы научимся создавать класс — камера.
Для этого мы сначала попробуем разобраться с командой библиотеки Glu — GluLookAt. В нашем случаи Glu.gluLookAt.Она принимает три набора
аргументов, которые задают точку наблюдения, прицельную точку (точку, на которую
направлена камера) и направление, которое следует считать верхним.



Пример:

          Glu.gluLookAt(Position.x, Position.y, Position.z, //Позиция самой камеры
                        View.x, View.y, View.z,             //Куда смотрим
                        Up.x, Up.y, Up.z);                  //Верх камеры


Вроде бы все просто. Теперь создадим отдельный класс в нашем приложении — Camera. Сразу подключим пространства и создадим Vertex3D — структуру, где будут храниться X,Y,Z векторов.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Tao.FreeGlut;
using Tao.OpenGl;
using Tao.Platform.Windows;

namespace Engine
{
    class Camera
    {
        private struct Vector3D
        {
            public float x, y, z;
        };
    }
}

Читать дальше
  • +4
  • OniKy
  • 17 января 2011, 10:24

Вопросы OpenGL + C#.Как определить какая часть 3D объекта под курсором?

Возможно не совсем корректно задан вопрос, я постараюсь разъяснить. Есть 3D объект, например чайник, я подношу мышку к носику, необходимо выделить носик, если к ручке то ручку и т.д.
  • +1
  • pyatka
  • 11 января 2011, 17:30

Блог им. OniKyКамера

И снова я) Создал новый класс, камера, вроде бы все окей, работаю через gluLookAt, крутит, вертит, перемещается, но не могу додумать как сделать стрэйф (движение камеры влево или вправо)

Объявляю:

CCamera cam = new CCamera();


В инициализации:

cam.Position_Camera(0, 5, -10, 0, 0, 0, 0, 1, 0);


В таймере:

            Glu.gluLookAt(cam.mPos.x, cam.mPos.y, cam.mPos.z,
                      cam.mView.x, cam.mView.y, cam.mView.z,
                      cam.mUp.x, cam.mUp.y, cam.mUp.z);

            Gl.glPushMatrix();
            //модели
            Gl.glPopMatrix();


Считываю клаву:

        private void AnT_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.W)
                cam.Move_Camera(0.03f);

            if (e.KeyCode == Keys.S)
                cam.Move_Camera(-0.03f);

            if (e.KeyCode == Keys.A)
                cam.Rotate_Position(0.03f, 0, 1, 0);

            if (e.KeyCode == Keys.D)
                cam.Rotate_Position(-0.03f, 0, 1, 0);

            label2.Text = e.KeyCode.ToString();
        }


Вот сам класс:

        public struct Vector3D
        {
            public float x, y, z;
        };

        class CCamera
        {
            public Vector3D mPos;
            public Vector3D mView;
            public Vector3D mUp;

            static float currentRotX;
            static float lastRotX;

            public void Rotate_Position(float angle, float x, float y, float z)
            {
                mPos.x = mPos.x - mView.x;
                mPos.y = mPos.y - mView.y;
                mPos.z = mPos.z - mView.z;

                Vector3D vVector = mPos;
                Vector3D AVector;

                float SinA = (float)Math.Sin(angle);
                float CosA = (float)Math.Cos(angle);

                // Найдем новую позицию X для вращаемой точки 
                AVector.x = (CosA + (1 - CosA) * x * x) * vVector.x;
                AVector.x += ((1 - CosA) * x * y - z * SinA) * vVector.y;
                AVector.x += ((1 - CosA) * x * z + y * SinA) * vVector.z;

                // Найдем позицию Y 
                AVector.y = ((1 - CosA) * x * y + z * SinA) * vVector.x;
                AVector.y += (CosA + (1 - CosA) * y * y) * vVector.y;
                AVector.y += ((1 - CosA) * y * z - x * SinA) * vVector.z;

                // И позицию Z 
                AVector.z = ((1 - CosA) * x * z - y * SinA) * vVector.x;
                AVector.z += ((1 - CosA) * y * z + x * SinA) * vVector.y;
                AVector.z += (CosA + (1 - CosA) * z * z) * vVector.z;

                mPos.x = mView.x + AVector.x;
                mPos.y = mView.y + AVector.y;
                mPos.z = mView.z + AVector.z;
            }

            public void Move_Camera(float speed)
            {
                Vector3D mmView;
                mmView.x = mView.x - mPos.x;
                mmView.y = mView.y - mPos.y;
                mmView.z = mView.z - mPos.z;

                Vector3D vVector = mmView;  // Get the view vector 

                // Двигаем камеру со скоростью speed
                mPos.x = mPos.x + vVector.x * speed;
                mPos.z = mPos.z + vVector.z * speed;
                mView.x = mView.x + vVector.x * speed;
                mView.z = mView.z + vVector.z * speed;
            }

            public void Move()
            {
                mPos.x = mPos.x + 1;
                mView.x = mView.x + 1;
            }

            public void Rotate_View(float speed)
            {
                Vector3D mmView;
                mmView.x = mView.x - mPos.x;
                mmView.y = mView.y - mPos.y;
                mmView.z = mView.z - mPos.z;

                Vector3D vVector = mmView;  // Получаем вектор View

                mView.z = (float)(mPos.z + Math.Sin(speed) * vVector.x + Math.Cos(speed) * vVector.z);
                mView.x = (float)(mPos.x + Math.Cos(speed) * vVector.x - Math.Sin(speed) * vVector.z);
            }

            public void Position_Camera(float pos_x, float pos_y, float pos_z,
                    float view_x, float view_y, float view_z,
                    float up_x, float up_y, float up_z)
            {
                mPos.x = pos_x;
                mPos.y = pos_y;
                mPos.z = pos_z;
                mView.x = view_x;
                mView.y = view_y;
                mView.z = view_z;
                mUp.x = up_x;
                mUp.y = up_y;
                mUp.z = up_z;
            }
        };

А как стрейф сделать не пойму( может кто знает?
  • 0
  • OniKy
  • 09 января 2011, 22:12

Блог им. OniKyМассив объектов

Что-то я запутался, есть у меня класс Objects, определяю его как массив
Objects[] mObject = new Objects[999];

объявляю переменную,

intcreatedObjects; 


чтоб узнать сколько объектов создал и по этой переменной создавать цикл, потом прицепляю к кнопке создания нового объекта
Читать дальше
  • 0
  • OniKy
  • 08 января 2011, 04:51

Новые уроки OpenGL и мультимедиатопик-ссылка Создание небольшой 3D игры в виде цикла новых уроков

Анонс новых уроков в виде введения. Уроки будут в новом блоге (создание игр), т.к. есть еще наработки, которые в виде отдельных тем могут быть опубликованы в блоге "создание игр"

Создание игрСоздание небольшой 3D игры на OpenGL в виде уроков.

Небольшое историческое отступление


Создание игры OpenGL, C++Когда-то очень давно, я создал небольшую игру, к которой прилагался учебник, полностью освещавший ее создание.
Учебник должен был участвовать в конкурсе, но к сожалению, его «неверно оформили» и нигде он так и не поучаствовал.

Но ведь не пропадать добру!

Свободное время перед новым годом — думаю, что можно занятся небольшой корректировкой кода ну и по тексту где надо, и поделится небольшим циклом уроков.
Текст написан немного не серьезно, местами, возможно применение не самых лучших методов, ну я думаю это не очень страшно — просто приятно отдать дань старой работе, которая пролежала 7 лет в бекапных архивах :)

Читать дальше
  • +3
  • Anvi
  • 27 декабря 2010, 00:27

Блог им. SomeGreatManc# + TaoFramework вопрос про работу с потоками.

Всем доброе утро, скажите, почему при зацикливании какого-либо куска кода, ответственного за отрисовку изображение не выводится на экран? Вот, во всех уроках используется таймер, который в некоторые промежутки времени вызывает функцию отрисовки и это работает. Но Читать дальше