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

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

Доделал демку со стенсильными тенями26 янв. 200518:15#30
Джо
круто
Geforce 5200
Как сделать анимацию моделей26 янв. 20058:35#5
drag08
А вообще еще надо модель как-то представить в виде мешей?
Что такое ID3DXMesh::GenerateAdjacency и UML-диаграммы?26 янв. 20058:29#6
NOX
>Кто-нибудь использовал UML-дипграммы? Насколько они облегчают жизнь при проектировании, и где взять прогу для их >создания.
Еще почитай Гради Буча пару книг "Объектно ориентированный анализ и разработка приложений", "UML - руководство пользователя"
Resolver сказал что использовать для создания UML - диаграмм
Хранение сложных 3мерных обьектов и их пересечение26 янв. 20058:18#1
sergss
>как организовать хранения такого обьекта, что бы в будущем выбранный метод
>хранения и описания данных обьектов былл удобен для операций пересечения обьектов.
Для пересечений нужны ограничивающие тела либо сферы(Bounding Sphere) либо боксы(Axsis Align Bounding Box).
Проверяем пересечение с ограничивающем телом, в случае успеха проверяем пересечение с тем объектом который оно ограничивает.
Как сделать анимацию моделей25 янв. 200513:26#3
Andrey
>или ты имеешь в виду ключевую анимацию модели?

да это я имею ввиду
>1. Должна быть возможность появления и исчезния нод.
поясни поподробней
>4. Частичная анимация, когда перемещается относительно друг друга только часть нод, а остальные прикреплены к ним.
поробуй создай событие с такими данными и обрабатывай как яговорил

Как сделать анимацию моделей25 янв. 200510:13#1
drag08
Подскажи  как ты грузишь анимацию?
а я попытаюсь дать тебе идею как я ее вижу:
>Вопрос в том, как сделать так, чтобы у модели были секвенции или состояния, которые можно переключать. Например: >поехал, пошел, упал. Изменение частей модели: взял щит, погнули дело, загорелся и т.д.
В общем тебе надо создать класс менеджера событий анимации к примеру.
потом создать класс событие анимации, в этот класс события ты записывай данные по оределенному событию.(положения модели угол поворота состояние и т.д.)
в процессе главного цикла движка создаются какие-нужно события анимации и записываются в список(очередь) событий
менеджер событий анимации узнает тип события и получаю соответствующие данные(в зависимости от типа события) производит анимацию модели.
Узнать тип события анимации можно добавление поля int и сдела enum для типов событий.
для выполнения каких либо событий следует сделать указатель на функцию класса менеджера событий.
далее все примерно так:
          switch (event -> GetTypeAnimation()) {
                        case Animation_Jump:
                                    //действия для конкретной анимации
                          break;
                  // и т.д.

}

я могу ошибаться все это нужно хорошенько подумать я тебе дал идею

Что выбрать: сам объект или указатель на него?25 янв. 200510:04#1
timofei
вот тебе пример:
class Camera {
private:
          Vector3D up;
          Vector3D dir;
          Vector3D right;
//...
}
//Вот так делать ник чему:
class Camera {
private:
          Vector3D *up;
          Vector3D *dir;
          Vector3D *right;
//...
}

вот другой пример есть класс Engine и есть класс Render они существуют отдельно друг от друга не важно как они созданы на стеке: простым объявлением :

//рендер
Render render;
//движок
Engine engine;
или в куче(с помощью выделения памяти посредством new например)
Render *render = new Render;
Engine *engine = new Engine;
Класс движок допустим управляет рендером, а рендер что-то допустим дает движку например какие-нибудь данные.
В этом случае нужен указатель:

class Engine {
private:
     //указатель на рендер
     Render *render;
//....
}
class Render {
private:
          //указатель на движок
          Engine *engine;
//...
}
теперь  оба класса знают друг о друге.
Вообще это все относительно тут надо подумать и прикинуть.Лучше всего изобрасить UML диаграмму взаимодействия классов и все станет понятно(сужу на собственном опыте).Кстати делая класс на стеке авомат вызывается конструктор и деструктор что иногда удобно.
Данные примеры не притендуют на полноту решения проблемы ирассказаны как частный случай...
помогите разобраться с std::string!!!25 янв. 20058:30#19
Шурик
#include <strstream>
using namespace std;

//буфер
char strText[255] = {'\0'};

int count_fps;
string str;


//Вывод целого числа в виде строки
const char* IntToStr(const int value)
{
	//Поток вывода в память
	ostrstream os(strText, 255, ios::out);
	//Вывод строки
	os << value;
	return str;
}

str = "fps=";
str +=  IntToStr(count_fps);
export mesh (index)????24 янв. 20059:26#2
lebron
слушай у меня тоже эта проблема!!!У меня ввообще вместо кубика только 1 треугольник выводиться....:(
только я вывожу массив вершин:
glBegin(GL_TRIANGLES);
			glTexCoord2fv(&mesh.vertexs[i].tvert[0][0]);
			glVertex3fv(&mesh.vertexs[i].vert[0][0]);
			glNormal3fv(&mesh.vertexs[i].normal[0][0]);
			glTexCoord2fv(&mesh.vertexs[i].tvert[1][0]);
			glVertex3fv(&mesh.vertexs[i].vert[1][0]);
			glNormal3fv(&mesh.vertexs[i].normal[1][0]);
			glTexCoord2fv(&mesh.vertexs[i].tvert[2][0]);
			glVertex3fv(&mesh.vertexs[i].vert[2][0]);
			glNormal3fv(&mesh.vertexs[i].normal[2][0]);
		glEnd();
кстати я тоже движок делаю!!!
Вопросы про оптимизацию рендеринга в движке21 янв. 200513:59#8
dub
>p.s. ты хоть сходил по ссылке, которую я привел?
да ходил, все понятно буду пробовать...
Спасибо всем!!!
Вопросы про оптимизацию рендеринга в движке21 янв. 200513:39#5
Ну больше никто не ответит на мой вопрос?
Вопросы про оптимизацию рендеринга в движке21 янв. 200511:38#4
dub
>от уровня зависит
допусти я хочу в процессе обучения и эксперемента попробовать.
вот есть текстовый файл:
49.500000 0.000000 50.000000
49.500000 0.000000 -50.000000
50.500000 0.000000 -50.000000

50.500000 0.000000 -50.000000
50.500000 0.000000 50.000000
49.500000 0.000000 50.000000

49.500000 10.000000 50.000000
50.500000 10.000000 50.000000
50.500000 10.000000 -50.000000


и т.д.
это типа строка с координатами вершин читаем этот файл в массив вершин и создаем список полигонов как это по Box'ам разбить?

Вопросы про оптимизацию рендеринга в движке21 янв. 200511:19#2
dub
рендер на первых порах уже есть.
ты мне можешь на практический вопрос ответить?
может в аське поговорим если можно?
Вопросы про оптимизацию рендеринга в движке21 янв. 200510:53#0
Привет всем!!!
У меня несколько вопросов.
Сначала попытаюсь изложить общие выводы и то что я попытался сделатью,тут-же возникнут общие вопросы.
                                          Общие вопросы и описание проблемы.
Я не знаю с чего начать оптимизацию.конкретно нужна оптимизация сложного уровня.Я пробовал решать задачу в лоб, пробуя делать отброс невидимых треугольников посредством теста попадания в frustm.FPS конечно повысился но это не правильный подход, особенно для уровня со  сложной геометрией т.к. могут начаться большие тормоза.Я так понимаю уровень нада разбивать
посредством BSP или OctTree и т.д. в зависимости если это закрытые комнаты или  открытые пространства(например ландшафты).Далее я так понимаю нужно уровень бить по AABB((Axis-Aligned Bounding Box) боксам) далее эти боксы распределять по BSP или  OctTree.Я так понимаю по отдельным треугольникам это делать не стоит?Еще есть вариант
иерархически описывать ограничивающее тело вокруг уровня пока не дойдем до минимльной единицы.При таком способе тест на попадание в область видимости камерв и проверка на столкновения будет более оптимизирован т.к. сначала проверяем общее ограничивабщее тело потом в случае успеха те что внутри,или вообще не проверяем.Я правильно понимаю?Как сделать лучше?Это зависит от задач?[/b]Меня еще волнует вопрос перед отрисовкоя я так понимаю надо хорошенько продумать структуру данных  которая будет хранить список протестированных объектов(на предмет орисовки в данном кадре) и их посылать рендеру я, по ходу дела список будет динамичным, я правильно понимаю?

Теперь вот практический вопрос у меня есть уровень представленный(пока для простоты)
масивом треугольников:

//грань
class Face {
	Vector3D vertex[3];
                   //...остальные данные
};

//массив треугольников
vector<Face> poligons;
теперь есть класс Box'а :
class AABB {
private:
	Vector3D pointMin;//минимальная точка
	Vector3D pointMax;//максимальная точка
//...Осатальное что его касается
public:
//...Осатальное что его касается

};
Практический вопрос как допустим побить уровень по Box'ам(пока просто не испоьзуя BSP и т.д.)?
Прошу не пинать если где-то я ошибаюсь...
Спасибо все заранее
С уважение Андрей
GUNgine21 янв. 20058:57#609
silber
А чего переживать? Майк дал основу дальше самим надо развиваться...

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

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