Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты C++

Ответ
 
Опции темы
Старый 09.06.2012, 15:01   #61
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: DG3D Engine

Сообщение от MoKa Посмотреть сообщение
Не забывай о том что пишешь то ты открытый движок, для разработчика.
Движок закрыт в DLL. Просто функции движка позволяют на основе него набросать побыстрому свой каркас, я бы даже сказал не позволяют, а на этом движке необходимо затачивать свой удобный каркас (в PDF есть пример с освещением)... это лишь набор функций, что бы не ковыряться с гапи, а быстро начать делать что-либо... причем будут дополнения в виде bullet, physx, squall , etc.
(Offline)
 
Ответить с цитированием
Старый 09.06.2012, 15:52   #62
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: C3D Engine

новая версия работает медленнее. в два раза. когда все кубы видны. причем как то странно работает - если просто отъехать от стартовой точки назад - то фпс 70 если смотреть на кубы сверху то фпс 30. wtf?
нет, не так. если ему дать просраться на 5к фпс, то потом при взгляде на все кубики фпс падает до 30-ти. возможно проблема в моих драйверах. да - это стопудово в драйверах дело. аксель себя ведет также - если не дать просраться демке, то на 4к кубах она дает 900фпс вместо 750... странно, надо думать как это дело лечить.
обертка над гапи не должна проигрывать в производительности конструктору типа unity.
(Offline)
 
Ответить с цитированием
Старый 09.06.2012, 16:42   #63
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

O_o у меня наоборот быстрее (NVIDIA GT240, Intel E3300) 50 - 60 fps давало, вместо прошлой 20-25, я вообще не понимаю как у меня такая маленькая производительность.. я вообще все убирал, и все равно мало FPS.. как ты компилишь? MSVS ? Может какие-то особенные флаги компилятора?
(Offline)
 
Ответить с цитированием
Старый 09.06.2012, 17:04   #64
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: C3D Engine

я ж написал что ето в моем железе проблемы.
работать стало быстрее. с 60 фпс до 70.
если не давать демке работать на 1000+ фпсах.

я у себя походу sleep-ом буду ограничивать фпс тысячей. а то какая-то фигня творится после того, как видюха или винда поработает на высокой частоте обновления.
(Offline)
 
Ответить с цитированием
Старый 09.06.2012, 17:06   #65
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

Понятно... конечно странная фигня... у меня Win7 x86, Nvidia - такого глюка нет, специально сейчас проверил...
(Offline)
 
Ответить с цитированием
Старый 10.06.2012, 01:31   #66
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

ППЦ я не понимаю почему такая задержка
HolyDel:
В ядре:
сначала вызывается scene->draw();
в сцене лежит std::vector<CNode*> _nodes; //это список объектов для отрисовки
кратко, что делает CScene::draw()
...............
	glm::mat4 m_view = camera()->matrix_view();//один раз за фрейм получаем матрицу вида
	_frustum->CalculateFrustum(m_view);//считаем фрутсум
	for(int i=-1;++i<_nodes.size();)//проходим по всем нодам (ентитям) (этот метод цикла быстрей итераторного)
	{
		CNode* curnode = _nodes[i];//берем 1 раз за итерацию объект массива (так быстрей)
		if(curnode->vbo()!=NULL){//если есть геометрия
			glm::vec4 cur_pos = curnode->position(true);//определяем позицию (4 столбец из матрицы)
			if(_frustum->CubeInFrustum(cur_pos.x,cur_pos.y,cur_pos.z,curnode->vbo()->box()))//эта строка вообще никак не влияет на скорость как ни странно
				curnode->drawVBO(m_view); //рисуем геометрию
		}
	}
.........................
}
вот код CNode::drawVBO
void CNode::drawVBO(glm::mat4 &m_view)
{
	if(!_effect || !_visible) return;
	_effect->setWorldMatrixSemantic(matrix(true));//тут ничего страшного тупо передача в шейдер не должно тормозить
	_effect->setViewMatrixSemantic(m_view);
	_effect->setProjMatrixSemantic(APP->render()->projection());
	_effect->setTexture0Semantic(_texture);
	_shader_queue->bind();//тут пусто, это передача кастомных параметров в шейдер
	while(_effect->pass())//тут проходим по всем проходам, тоже ни чего мудреного проход один в шейдере
	{
		_vbo->drawBuffers();//рисуем буфферы на гапи
	}
	//_shader_queue->unbind();
}
код отрисовки буферов на гапи

if(_vbuffer && _ibuffer)
	{
		glBindBufferARB( GL_ARRAY_BUFFER_ARB, _vbuffer );
		glVertexPointer( 3, GL_FLOAT, 0, 0 );
		if(_nbuffer)
		{	
			glBindBufferARB( GL_ARRAY_BUFFER_ARB, _nbuffer );
			glNormalPointer(GL_FLOAT,0,0);
		}
		if(_tbuffer)
		{	
			glBindBufferARB( GL_ARRAY_BUFFER_ARB, _tbuffer );
			glTexCoordPointer( 2, GL_FLOAT, 0, 0 );
		}

		{
			APP->render()->dips_up();
			glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, _ibuffer);
			glDrawElements(GL_TRIANGLES,_cnt_indices,GL_UNSIGNED_SHORT,0);
			//glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
		}
	}
мля!! что тут может тормозить я не понимаю!! я даже бинды убирал, эффект от этого не поменялся.. у мня 4к кубов 40 фпс, axel 255!!! юнити 50, все остальное 80
(Offline)
 
Ответить с цитированием
Старый 10.06.2012, 02:30   #67
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: C3D Engine

ты передаешь три матрицы. а я одну. и в шейдере их множишь получается (для каждой вершины) а я один раз, правда на цпу, так быстрее.

ты проверку на фрустум делаешь по боксу, а я по сфере, так быстрее.

ну и насчет сеток - у тебя один vbo/ibo на сцену, или 4096? у меня один, и у блица с хорсом тоже, за остальные не скажу. хотя это не так сильно влияет.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pozitiffcat (10.06.2012)
Старый 10.06.2012, 02:43   #68
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

спасибо что посмотрел код

ты передаешь три матрицы. а я одну. и в шейдере их множишь получается (для каждой вершины) а я один раз, правда на цпу, так быстрее.
я пробовал - дольше!
ты проверку на фрустум делаешь по боксу, а я по сфере, так быстрее.
имхо - меньше точность
неужели одного буффера хватит на кучу сложных объектов? O_o

один буфер на всё, дал прирост 5 фпс... ниочем
(Offline)
 
Ответить с цитированием
Старый 10.06.2012, 02:47   #69
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: C3D Engine

нет. тут дело в том что объекты то одинаковые.

я пробовал - дольше!
странно. должно быть быстрее и это еще на кубах. а если будет на каких-нибудь хайполи модельках, да на каком нибудь интегрированном интеловском говнеце, то твой метод отрисовки сразу начнет очень сильно проигрывать.
ну и множить, надо понятное дело один раз.
т.е. viewproj считаем один раз и model на нее множим столько раз, сколько нод.
(Offline)
 
Ответить с цитированием
Старый 10.06.2012, 02:53   #70
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

т.е. viewproj считаем один раз и model на нее множим столько раз, сколько нод.
хм - не подумал... спасибо

upd: не дало результата... фпс остались такие же
(Offline)
 
Ответить с цитированием
Старый 10.06.2012, 03:22   #71
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: C3D Engine

ну тогда хз ))
надо значит профайлером пройтись.
(Offline)
 
Ответить с цитированием
Старый 12.06.2012, 02:30   #72
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

УРААААААААА 233 FPS ксорс дает 95 на моем железе... Там с CG заморочки были и еще, тут кое какие сортировки сделал, чтоб один и тот же шейдер не биндить 4096 раз
400 человечков, с анимацией
4096 кубов
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо pozitiffcat за это полезное сообщение:
FireOwl (12.06.2012), HolyDel (12.06.2012), is.SarCasm (12.06.2012)
Старый 12.06.2012, 12:17   #73
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: C3D Engine

во, респект! теперь давай выкладывай бинарники чтобы на разном железе потестить ))
анимаци костаня или морфная?
(Offline)
 
Ответить с цитированием
Старый 12.06.2012, 15:29   #74
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

анимация морфная, бинарники вечером выложу, там кое че подправить надо для интелектуальной сортировки по нескольким критериям, плагин для макса 2010 в комплекте, если от плагина сорцы надо, пиши. У меня плагин для макса любую анимацию в морф делает. Все преобразования на CPU идут через SSE2, так что быстро )))
(Offline)
 
Ответить с цитированием
Старый 12.06.2012, 17:12   #75
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: C3D Engine

Скачать 134 билд.
Экспортер (забыл в zip положить)
400 анимированых человечков с 4096 кубами
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 15:19.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com