![]() |
Re: Sigel
Потестил. FPS в обоих случаях одинаков - 13.
Хар-ки компа: Sempron3200+ 1.6Ггц 512 МБ ОЗУ GeForceGo 6100 |
Re: Sigel
26 блитц
31 сигел Intel(R) Core(TM) 2 CPU 6400 @ 2.13 Ghz 2 GB ОЗУ Nvidia Geforce 7950 GT 512 MB |
Re: Sigel
А вам не кажется, что условия теста не честны :)
По идее тестируется скокрость отрисовки, или я не так понял? Но зная тормознутость перебора блитца, возможно все ФПС-ки и потерялись. А ещё Мега быстрая блитц математика )) Так что если тестировать, то в одинаковых условиях. |
Re: Sigel
HolyDel
Подключаются всегда хедеры (.h файлы). Так принято, что реализация хранится в cpp файле и к ней имеет доступ только компиллер. Пользователю же реализация не интересна, его интересует лишь интерфейс, который описывается в хедере. Имхо, сначала стоит ознакомится со структурой одного из доступных опен-сорсных движков (PopCap Framework, HGE - это 2Д, с 3Д движками пока не разбирался). На собственном опыте проверил. Если писать свой движок с нуля, постепенно добавляешь новые фичи, улучшаешь старые... Рано или поздно наступает момент, когда надо переписать структуру движка. И так не один раз. А это время и силы. Это лишь имхо. Удачи! |
Re: Sigel
насчет подключения, лично я невижу никакой разницы между етими файлами, но могу сделать одельный интерфейс в h - файл, чтобы cpp глаза не мозолил.
насчет структуры - собственно я сейчас его пишу не для того, чтобы написать. первый блин всегда комом. просто, потренировать мозги на сообразительность. спасибо. Render, я с тобой согласен, что условия нечестные. тем более наверняка половина из тестирующих не выключала даже DebugMode. собсно мне пока влом переписывать sigel файл, но если кому не в лом, то пусть он вынесет код обновления етих фигур за цикл, примерно так: Код:
Graphics3D 1024,768,32,1 собственно я признаюсь, в блице тормозит FrustumCulling, я не знаю как они его делали, но явно по тормозному. в своей ф-ии (для примера брал из NeHe) я вылизал все математические операторы. поетому она и работает быстро. а тормозит дурацкий вывод. |
Re: Sigel
Так, мне стало интересно. Раз тестить то давай по честному :)
Всю математику с цикла в топку. нужно что бы все кубы были в камере, а то их токо половина, к тому же меньшая. И желательно, что бы они равномерно были распределены в пространстве. Вот так будет получше. Тест нумер 2. Взять несколько моделек, по 40-50 к поли и поганять как их потащит. Желаетльно Блитц версию в комплект :) |
Re: Sigel
Цитата:
я думаю такой тест, когда половина объектов в камере, а половина нет - более полно отражает картину реальной игры. такчто такой тест уместен. насчет моделек - дык у меня пока даже загрузки нет. "движку" то всего четыре-пять дней. ЗЫ. а если поставить все объекты в хоне видимости, то у мну можно и фруструм проверку отрубить, так еще быстрее будет. да, и еще, если они (объекты) будут статичны, то ето нафиг портит всю картину, их же можно в блице объеденить в один сюрфейс. |
Re: Sigel
Сори за офтоп. Вот пример:
Код:
// MySuperClass.h Код:
class MySuperClass; Кроме того, в хедерах есть стражи включения, которые не позволят включить файл несколько раз, что в противном случае приводит к неприятным ошибкам. Сори еще раз за оффтоп, продолжить можно в аське или чате) |
Re: Sigel
blitz3D - 8 FPS
Sigel - 14-16 FPS winXP SP2, 384 Озу, Geforce FX5500 128 мб, 1.6 ГЦ Тестил с выключенным дебаг модом. |
Re: Sigel
а почкму оффтоп? совсем не оффтоп.
я вот о чем, пусть пользователь подключит етот файл, и забудет о его существовании. у него останется тока список ф-ий, которыми он и будет пользоваться, все "левые", юзаемые внутри движка попрятаны по нэймспэйсам, все сложные и редкоиспользуемые ф-ии начинаются с ex, методы тоже. а вообще, у меня есть h-файл с описанием интерфейсов, и cpp файл с кодом для етого интерфейса, но cpp файл, подключает h-файл, поетому в проект подключается cpp. реализация класса, ессено вынесена в отдельный cpp файл, там же и пишутся реализации функций, например void MySuperClass::Update() { doSomething(); } единственное, что у меня в одном файле может быть несколько классов. |
Re: Sigel
HolyDel
если ты подключиш вместо CPP - H файл ... то по идее ничего не изменится |
Re: Sigel
alcoSHoLiK
|
Re: Sigel
|
Re: Sigel
jimon, а я о чом?
как с ТВОЕЙ точки зрения грамотно организовать подключение? |
Re: Sigel
HolyDel
ну я обычно юзаю ООП с интерфейсами :) вот практический пример в 4 файла :-) для конечного проекта надо только IEngine.h и Main.cpp IEngine.h Код:
#ifndef HIENGINEH Код:
#ifndef HCENGINEH Код:
#include "CEngine.h" Код:
#include "IEngine.h" 1)кидаем IEngine.h,CEngine.h,CEngine.cpp в компилятор и получаем dllку + lib файл 2) даем юзеру dllку, lib файл и IEngine.h он доволен и делает прогу blabla.exe 3) если меняются только CEngine.h и CEngine.cpp то можно просто заново скомпилить дллку и заменить ею старую дллку, перекомпиляция blabla.exe не нужна в принципе удобная системка :) но на вкус и цвет товарищей нет ... :) |
Часовой пояс GMT +4, время: 13:32. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot