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

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

DirectX10. кто что знает?7 дек. 200523:38#74
опять война...
все Api хороши и OpenGL и Direct3D
че тут страдать глупыми сопрами... ни как не пойму
OpenGl Screenshot6 дек. 200523:32#28
Ronin
тода ты прав свое писать надо...
OpenGl Screenshot6 дек. 200516:51#24
Ronin
>Нет так нельзя.
>Надо прямым гл-ем и его экстами, использование сторонних либ крайне нежелательно тк несёт за собой большую волокиту.
зря а волокит нет особых...
OpenGl Screenshot5 дек. 200520:56#18
Ronin
А так тебя не устроит с использованием DevIL(OpenIL)?
//перед этим проинициализировать:
[code = cpp]
	ilutRenderer(ILUT_OPENGL);
// созданипе скриншота
bool OpenGLRender::CreateScreenShot(const string& filename) const
//создаем скриншот для OpenGL окна
	ilutGLScreen();
	//удалить на всякий случай
	remove(filename.c_str());
	//сохраняем файл
	int res = ilSaveImage(const_cast<const ILstring>(filename.c_str()));
	if (!res) {
		//Получение кода ошибки
		int err = ilGetError();
		//Если код не равен нулю ошибка была
		if (err != IL_NO_ERROR) {
			//Получение строки с ошибкой
			const char* strError = iluErrorString(err);
			//добавить сообщение
			OutMessage(Console::ERROR_MESSAGE, " Ошибка: %s%s",
				strError, "\n");
			return false;
		}
	}
return true;
}
Правка теги

Правка: 5 дек. 2005 21:00

Почему в C++ многие не пользуются exception'aми ???3 дек. 200519:43#182
Надо подписаться :) ого раздули.
вообще исключения хорошая вещь но если можно обойтись пару раз if то они возможно не нужно...тут ситуации бывают токие...я лично их использую...
LUA - как получить список всех идентификаторов30 ноя. 200517:48#1
Timm
Пригодиться твой вопрос, подпишусь...
OpenIL загрузка TGA, проблема с цветностью изображения30 ноя. 200513:26#2
DestroYerz
после загрузки попробуй:
int Format = ilGetInteger(IL_IMAGE_FORMAT);
	if (Format == IL_BGR || Format == IL_BGRA)
		iluSwapColours();
почитай мою статью и форум к статье там есть описание этой проблемы
http://www.gamedev.ru/articles/?id=70123
Глюки с подключением расширения! :((28 ноя. 200511:44#14
glProger
ну понятно кому хочеться заморачиваться, а кому нужен результат применения расширений без проникновения в их детали их инициализации...
Глюки с подключением расширения! :((27 ноя. 200523:21#12
All
А почему бы не использовать для расширений бибилиотеку glew ?
очень удобно и ни каких указателей и т.д.. только glewInit() и все!!!
http://filez.nnm.ru/programmers_land/05.05.2005/the_opengl_extens… raryglew_132/
попробуйте не пожалеете.. это хорошая обертка вокруг инициализации расширений OpenGL.
Корректная обработка результатов столкновения камеры и объектов сцены27 ноя. 200523:18#18
Ну больше ничего нельзя предложить?
может как-тосо скоростью увязать и масштабом?
Корректная обработка результатов столкновения камеры и объектов сцены25 ноя. 200521:18#17
Gaco
>В смысле летает? У тебя в projection(const Vector3D &v1,const Vector3D &v2) дот продукт, что бы косинус получить >правильный и v1 и v2 должны иметь длину 1.0.
все это я пробовал делать v1 - сделал нормализованным т.е. projX0Z
>А если дальше глючит, то ставь ассершены и дебаж. Может у тебя вобще в другом месте неправильно позиция >устанавливаеться.
стало чуть получше но не всегда корректьно работает т.е. вроде скользит если по столбу или строго по сплошной стене под малым углом(почти вдоль ее) но отбразывает сильно
что еще  можно предложить?
Корректная обработка результатов столкновения камеры и объектов сцены25 ноя. 200513:16#15
Юлиан
>ты проверяешь может ли камера переместиться
это и есть та самая проверка...
что то я не пойму почему варианты не надо делать...
Gaco
вроде пробовал.. но камера так летает!
Корректная обработка результатов столкновения камеры и объектов сцены25 ноя. 20052:21#12
Я приведу кусок кода поясняющий что я делаю.

когда мы нашли полигон который попадает в Bounding Box камеры
тогда:

....
Plane plane; // плоскость
//расчитываем плоскость (код упрощен в плане подстановки вершин полигона) через 3 точки полигона v0,v1,v2
plane.computePlane(v0, v1, v2);
//далее:
находим проекцию вектора взгляда камеры на плоскость земли, т.е. это то-же вектор,но его координата Y = 0;
Vector3D projX0Z(camera.GetDirection().x, 0.0f, camera.GetDirection().z);
//проекция вектора projX0Z на плоскость полигона
Vector3D v = projection(projX0Z, plane.GetNormal());
v = v  / 2.0f;	//делам вектор поменьше...
camera.SetPosition(camera.GetPosition() + v);//это ноавое положение камеры

//итак вот дополнительно класс плоскости в пространстве:

#ifdef _WIN32
#define INLINE __forceinline
#else
#define INLINE inline
#endif

class Plane  {//Плоскость в 3-мерном пространстве a*x + b*y + c*z + d = 0
private:
	//Дистанция по нормале от начала координат
	float dist;
	//Нормаль к плоскости
	Vector3D normal;
public:
//...
	//Формироаниея уравнения плоскости по 3 точкам
	//(Расчет нормали и расстояния до начала координат по нормали)
	INLINE void computePlane(const Vector3D& p1, const Vector3D& p2, const Vector3D& p3)
	{
		Vector3D v = (p2 - p1);
		normal = v * (p3 - p1);
		normal.Normalize();
		//вычичсление дистанции из уравнения
		//A*x + B*y + C*z + dist = 0;
		//dist =  -(A*x + B*y + C*z);
		dist = - dotProduct(normal, v);
	}
};


//Поекция вектора v1 на плоскость перпендикулярную вектору v2,out - результат
INLINE Vector3D projection(const Vector3D &v1,const Vector3D &v2)
{
	Vector3D out;
	out = v1 - v2 * dotProduct(v1,v2);
	out.Normalize();
	return out;
}
что скажете? что у меня не правильно?

Корректная обработка результатов столкновения камеры и объектов сцены24 ноя. 200514:02#10
Scart
Дак это будет не очень просто 4 варианта движения и столько -же раз пересчитать пересечение Bounding Box'а камеры...
разве нет?
Корректная обработка результатов столкновения камеры и объектов сцены23 ноя. 200521:47#8
Юлиан
Это довольно сложно сделать сам подумай: нужно просчитать все четыре варианта вектора перемещения камеры(куда она передвинеться вперед назад влево вправо?) присвоить новое положение Bounding Box'у пересчитаь все 4 варианта на пересечение и только тогда выставить несколько флагов из 4, в зависимости от результатов запрещающих двигать камеру в каком-то направлении на следующий шаг, и это еще и медленно..
Gaco
>Может получиться так что ни текущее положение камеры, ни следующее не попадёт в ббокс (маленький ббокс, высокая >скорость) и будешь просто пролетать через обьекты.
спасибо теперь понял...
>Если ещё не читал, то почитай статьи на этом сайте: Графика-Коллижн Детекшн.
конечно читал и не тольео тут.. с простыми вещами все работает... а со сложной геометрией нет.. если есть в сцене 1 спложная стена то все ок...

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

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