GameDev.ru
/ GameDev.ru / Пользователи / Andrey / Сообщения на форуме пользователя Andrey (244 стр.)

Сообщения на форуме пользователя Andrey (244 стр.)

Поздравляю wat'а с Днём Рождения!25 окт. 200411:29#31
wat
Поздравляю желаю всего всего и еще того чкго сам себе пожелаешь!!!
Спасибо большое за прекрасный сайт!!!
Книги, какая лучше?22 окт. 200416:16#1
Tox@
>Говорят книги Архангельска прикольные.
Ты что издеваешься что-ли??????
он же про игрушки типа Delphi и C++Builder пишет!!!
>Какую лучше купить книгу по программированию MS Visual C++.
Смотря какая версия для MS Visual C++ 6.0 бесцеллер Круглинского
>Чтобы быстро и хорошо освоить OpenGl, и сделать хоть якусь 3Д игру.
тут выбор огромен.Пробуй изучать OpenGL по урокам nehe

Книжечка Ламота. Мнения.21 окт. 200410:19#3
Vad1k
Я думаю книга очень хорошая я вот сегодня ее забирать буду за 640 руб :) .
Тест на выносливость :)20 окт. 200415:50#24
-=freeman=-
На двух компьютерах пробовал:

Celeron 2.4 Ггц
Adapter name: NVIDIA Corporation
Rendered device: GeForce FX 5200/AGP 128 Мб
Maximum FPS 30
Minimum FPS 15

Pentium 2.8 Ггц
Adapter name: NVIDIA Corporation
Rendered device: GeForce4 Ti 4200/AGP/SSE2 128 Мб
Maximum FPS 20
Minimum FPS 18

Правка: 20 окт. 2004 15:53

Скелетная анимация! **20 окт. 200415:35#2
spEctoRius_
Если бы ты программировал на С++ я бы с тобой пообщался я тоже пытаюсь ее делать но у меня человечек разлетается по частям при движении.Ну все равно алгоритмы одни и те-же.Заходи в Аську пообщаемся 2 головы лучше.Я уже там тебе написал.

Правка: 20 окт. 2004 15:38

inline .. error LNK201920 окт. 200414:10#1
bobbob
inline попробуй объявить ее в заголовочном файле, а не в файле реазлизации методов класса
текстуры ...19 окт. 200417:06#3
keiko
>нет, для каждой текстуры у меня _отдельная_ структура, просто этот пример - формальный (нет доступа к исходнику). В каждой >стуктуре находится идентификатор, размеры, координаты по которым текстуру рисовать и указатель на массив unsigned char*

Может ты неправильно инициализируешь эти структуры? возьми отладчиком помотри какие значения записываются.
или запости код.Я завтра гляну.

текстуры ...19 окт. 200416:50#1
keiko
//Я бы еще добавил
//массив идентификаторов (индексов) текстуры
unsigned int TextureId[NUM];//массив дентификаторов (индексов) текстуры
//Тогда исправления в инициализации
//для каждой тектуры нужен уникальный идентификатор индекс
//а у тебя он один и тот-же:
            for(z = 0;z < NUM;z++)
            {
                  glGenTextures(1, TEXID);  //Тут формируется уникальный индекс текстуры
                  glBindTexture(GL_TEXTURE_2D, TEXID_z); //Вот тут текстура привязывается к своему идентификатору
//у тебя один и тот-же идентифиатор как я понял он не меняется
//.....
}

 void prepare()
{
            printf("prepare\n");
            //glEnable(GL_TEXTURE_2D);  //Это не нужно при инициализации

            int z;

            for(z = 0;z < NUM;z++)
            {
                  glGenTextures(1, TextureId[z]);
                  glBindTexture(GL_TEXTURE_2D, TextureId[z]);
                  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
                  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
                  glTexImage2D(GL_TEXTURE_2D, 0, 4, DIV, DIV, 0, GL_RGBA, GL_UNSIGNED_BYTE, BITS_z);
            }

            //glDisable(GL_TEXTURE_2D); //Это не нужно при инициализации

}

А теперь вывод:

void paint()
{
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glEnable(GL_TEXTURE_2D);

        int z;

        for(z = 0;z < NUM;z++)
        {
            glBindTexture(GL_TEXTURE_2D, TextureId[z]);
            //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); //Это уже проинициализировалось
            //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); //Это уже проинициализировалось

            glBegin(GL_QUADS);
                  glTexCoord2f(0.0f, 0.0f); glVertex2f(x1, y1);
                  glTexCoord2f(1.0f, 0.0f); glVertex2f(x2, y1);
                  glTexCoord2f(1.0f, 1.0f); glVertex2f(x2, y2);
                  glTexCoord2f(0.0f, 1.0f); glVertex2f(x1, y2);
            glEnd();
        }

        glDisable(GL_TEXTURE_2D);
}

Правка: 19 окт. 2004 17:00

Раздел ОБУЧЕНИЕ проекта Almighty.15 окт. 200413:31#426
Buka
Понятно я смотрю все по разному ворочают.У Борескова в его движке он поворачивает Mz * My * Mx.
Раздел ОБУЧЕНИЕ проекта Almighty.15 окт. 200412:38#424
Buka
Спасибо!!! :) сейчас переделаю вообще ээто у Fly'я так в примере вот тут:http://www.gamedev.ru/proj/?id=1&doc=55
Неполигональный движок15 окт. 200412:25#6
inetcoder
Что-то не скачивается пример :(
Раздел ОБУЧЕНИЕ проекта Almighty.15 окт. 200411:55#422
Buka
Ок вот сырцы:
//Матрица вращения по всем 3 углам
	inline void rotateXYZ(float pitch, float yaw, float roll)
	{
		register float CosPitch = cosf(pitch);
		register float SinPitch = sinf(pitch);
		register float CosYaw = cosf(yaw);
		register float SinYaw = sinf(yaw);
		register float CosRoll = cosf(roll);
		register float SinRoll = sinf(roll);

		Matrix[0][0] =  CosYaw*CosRoll;
		Matrix[0][1] = -SinRoll*CosYaw;
		Matrix[0][2] =  SinYaw;
		Matrix[0][3] =  0.0f;

		Matrix[1][0] =  SinPitch*SinYaw*CosRoll + SinRoll*CosPitch;
		Matrix[1][1] =  SinPitch*SinYaw*SinRoll + CosPitch*CosRoll;
		Matrix[1][2] = -SinPitch*CosYaw;
		Matrix[1][3] =  0.0f;


		Matrix[2][0] = -SinYaw*CosPitch*CosRoll + SinPitch*SinRoll;
		Matrix[2][1] =  SinRoll*SinYaw*CosPitch + SinRoll*SinPitch;
		Matrix[2][2] =  CosPitch*CosYaw;
		Matrix[2][3] =  0.0f;


		Matrix[3][0] =  0.0f;
		Matrix[3][1] =  0.0f;
		Matrix[3][2] =  0.0f;


	}
//Извлечение углов из матрицы
	inline void getRollPitchYaw(float &pitch, float &yaw, float &roll) const
	{
		register float  x, y;

		float D = - asinf(Matrix[0][2]);  // Calculate Y-axis angle
		float C =  cosf(D);

		yaw = D;

		if (fabsf(C) > EPS)
		{
			float invC = 1.0f / C;

			x = Matrix[2][2] * invC;	//x = cos x * cos x / cos x
			y = Matrix[1][2] * invC;	//y = sin x * cos x / cos x
			pitch = atan2f(y, x);		//atan2f(y, x) = atanf(y / x)

			x = Matrix[0][0] * invC;
			y = Matrix[0][1] * invC;
			roll = atan2f(y, x);
		}
		else
		{
			pitch = 0.0f;				// Set X-axis angle to zero
			x = Matrix[0][0];      // And calculate Z-axis angle
			y = - Matrix[0][1];
			roll = atan2f(y, x);
		}
	}
Раздел ОБУЧЕНИЕ проекта Almighty.15 окт. 20049:50#420
*MPAK*
Спасибо большое!!!!
Почему углы всетаки со знаком минус?
может потому-что возвращаются углы на которые надо повернуть что-бы получить первоначальную матрицу?
Для всех, кто отвечает на вопросы (особенно в ветке проекты)14 окт. 200416:03#1
GLoom
Сразу видно что профессионал.Все правильно сказано.
Координаты мыши 2 координаты сцены14 окт. 200414:46#1
ProvAd
double modelMatrix[16];//Видовая матрица
		double projMatrix[16];//Матрица проекций
		int viewport[4];//область просмотра
		double objx;
		double objy;
		double objz;
              float x;
              float y;
              float z;
	              //Получить область просмотра
		glGetIntegerv(GL_VIEWPORT, viewport);
		//Получить видовую матрицу
		glGetDoublev(GL_MODELVIEW_MATRIX, modelMatrix);
		//Получить матрицу проекций
		glGetDoublev(GL_PROJECTION_MATRIX, projMatrix);
		//Преобразование к мировым координатам из координат мыши
		gluUnProject(mouse.x, mouse.y, 0, modelMatrix,
					projMatrix, viewport, &objx, &objy, &objz);
		glLineWidth(3);
		//Установка  координаты X  сцены
		x = float(objx);
		//Установка координаты Y сцены
		y = float(objy);
                         	//Установка координаты Z сцены
		z = float(objz);

Правка: 14 окт. 2004 14:48

Следующие темы >>

2001—2012 © GameDev.ru — Разработка игр