Сообщения на форуме пользователя Andrey (170 стр.)
Очень Красивый Дельфи! | 10 июня 2006 | 16:36 | #5380 |
---|
MeF
>При условии, что писать будет профессиональный программист, не думаю, что FPS будет различаться более, чем на 10-15%. Тем более, что зачастую игра упирается >не в проц, а в видяху.
а я думаю что FPS будет различаться больше. по попределнию компилятор Delphi более неоптимизированный код делает.
а AI просчитывать а по BSP/Octree деревьям кто будет видюха бегать? а физику кто проститывать будет(еще не все физ. бибилиотеки имеют аппаратную поддержку на видюхах) Кстати а код SSE Delphi поддерживает? дак вот если нет то это еще минимум 5% можно прибавить.
а 15% на это время еще задачи можно подкинуть.
>При условии, что писать будет профессиональный программист, не думаю, что FPS будет различаться более, чем на 10-15%. Тем более, что зачастую игра упирается >не в проц, а в видяху.
а я думаю что FPS будет различаться больше. по попределнию компилятор Delphi более неоптимизированный код делает.
а AI просчитывать а по BSP/Octree деревьям кто будет видюха бегать? а физику кто проститывать будет(еще не все физ. бибилиотеки имеют аппаратную поддержку на видюхах) Кстати а код SSE Delphi поддерживает? дак вот если нет то это еще минимум 5% можно прибавить.
а 15% на это время еще задачи можно подкинуть.
Очень Красивый Дельфи! | 10 июня 2006 | 16:05 | #5377 |
---|
глупый нович0к
>а вы товарищь, неправы! народ нереписывал кваку на делфях. а еще где-то писали, ИЛ2-Штурмовик на яве написан по большей части (насчет явы - непомню, но точно >не на сях)
Еще который раз говорю Давай Far Cry/Half Life 2/Doom III/Call of Duty/Quake IV сделать и как это работатть будет?
кваку то переписали но!! это был проект 10 летней давности!!! 170 FPS выводил, а на C 290!! чувствуешь разницу???? данный результаты я запомнил делал это человек уважающий Delphi и имеющий опыт разрабтки на Delphi и C++. Тест проводился в равных уловиях. Давайте смотреть правде в глаза.
Переписать молжно и Quake III/IV но будет ли приемлимый FPS ?
>а в VS ты себе моск сломаешь с идиотским MFC.
Никак не сомаю MFC для меня не страшно как многим кажется.
XProger
>Я понял что С++ позволяет сделать абсолютно всё, и чаще всего через одно место :)
про Delphi сказать можно тоже самое как ты увидел код убог в плане функциональности на обоих языках. Но пременив STL код на C++ будет равть твой код с лучшими Delphi средствами его реализации.
>а вы товарищь, неправы! народ нереписывал кваку на делфях. а еще где-то писали, ИЛ2-Штурмовик на яве написан по большей части (насчет явы - непомню, но точно >не на сях)
Еще который раз говорю Давай Far Cry/Half Life 2/Doom III/Call of Duty/Quake IV сделать и как это работатть будет?
кваку то переписали но!! это был проект 10 летней давности!!! 170 FPS выводил, а на C 290!! чувствуешь разницу???? данный результаты я запомнил делал это человек уважающий Delphi и имеющий опыт разрабтки на Delphi и C++. Тест проводился в равных уловиях. Давайте смотреть правде в глаза.
Переписать молжно и Quake III/IV но будет ли приемлимый FPS ?
>а в VS ты себе моск сломаешь с идиотским MFC.
Никак не сомаю MFC для меня не страшно как многим кажется.
XProger
>Я понял что С++ позволяет сделать абсолютно всё, и чаще всего через одно место :)
про Delphi сказать можно тоже самое как ты увидел код убог в плане функциональности на обоих языках. Но пременив STL код на C++ будет равть твой код с лучшими Delphi средствами его реализации.
Очень Красивый Дельфи! | 10 июня 2006 | 15:38 | #5371 |
---|
XProger
Доволен результатом сравнения кода?
Ну что ты понял всетаки что C++ круче? со временем как будешь устраиваться на игровую фирму можешь забить на убожество.Ну никак не сделаешь большого игрового проекта на нем.
Доволен результатом сравнения кода?
Ну что ты понял всетаки что C++ круче? со временем как будешь устраиваться на игровую фирму можешь забить на убожество.Ну никак не сделаешь большого игрового проекта на нем.
Очень Красивый Дельфи! | 10 июня 2006 | 15:01 | #5360 |
---|
XProger
>1) В Delphi я написал меньше кода с той же логикой всех частей что и у тебя - почему?
потому что Delphi более высокоуровневфй язык чем C++ поэтому и получилось больше кода, т.к. если не использовать шаблоны в данной задаче то надо писать больше ручками, если я бы использовал STL то было бы в несколько раз меньше. Но ты сказал изобрести убогий велосипед что я и сделал.
>2)Весит это добро 64 кб в релизе, в Delphi (в которой нет релиза/дебага) весило 22 кб - почему?
ну вот можно уменьшить до 49 кб убрав поток вывода заменив на fprintf
Еще разница в весе в том что ты берешь функции ОС возможно из какой нибудь *.bpl ты убери галочку use RTL library если такая есть.
>1) В Delphi я написал меньше кода с той же логикой всех частей что и у тебя - почему?
потому что Delphi более высокоуровневфй язык чем C++ поэтому и получилось больше кода, т.к. если не использовать шаблоны в данной задаче то надо писать больше ручками, если я бы использовал STL то было бы в несколько раз меньше. Но ты сказал изобрести убогий велосипед что я и сделал.
>2)Весит это добро 64 кб в релизе, в Delphi (в которой нет релиза/дебага) весило 22 кб - почему?
ну вот можно уменьшить до 49 кб убрав поток вывода заменив на fprintf
... //std::cout << UINList[UIN[0]] + UINList[UIN[1]] + UINList[UIN[2]]; fprintf(stderr, "%s", UINList[UIN[0]] + UINList[UIN[1]] + UINList[UIN[2]].c_str()); ... //std::cout << UINList[UIN[2]]; fprintf(stderr, "%s", UINList[UIN[2]].c_str()); ... |
Очень Красивый Дельфи! | 10 июня 2006 | 14:01 | #5353 |
---|
XProger
Итак вот тебе код на C++ то-же убогий велосипед как у тебя ты думаешь C++ программисты не могут писать велосипеды???
Сразу скажу не все сделано как у тебя т.к. в обоих языках Delphi и C++ нет похожих средств все рализовано по разному. Код не оптимизирован как ты сказал.
Работает правильно. Программа не падает.
Прошу поправить если что ;)
Итак код:
Итак вот тебе код на C++ то-же убогий велосипед как у тебя ты думаешь C++ программисты не могут писать велосипеды???
Сразу скажу не все сделано как у тебя т.к. в обоих языках Delphi и C++ нет похожих средств все рализовано по разному. Код не оптимизирован как ты сказал.
Работает правильно. Программа не падает.
Прошу поправить если что ;)
Итак код:
#include <string> #include <cstdlib> #include <iostream> #include <ctime> class TUINList { private: struct TItem { int UIN; std::string Value; TItem(); void Gen(); }; TItem **FItems;// это unsigned int numItems; std::string GetItem(int UIN) const; void SetItem(int UIN, const std::string& NewValue); public: TUINList(); ~TUINList(); std::string operator[](unsigned int index) const;// это std::string& operator[](unsigned int index);// это int Add(const std::string& NewValue); void Del(int UIN); }; TUINList::TUINList() : FItems(NULL), numItems(0) { srand(static_cast<unsigned int>(time(NULL))); } TUINList::TItem::TItem() { Gen(); } void TUINList::TItem::Gen() { UIN = rand();// не исключаю случаев повтора, это не суть... } int TUINList::Add(const std::string& NewValue) { FItems = reinterpret_cast<TItem **>(realloc(FItems, sizeof(TItem *) * (numItems + 1))); // это FItems[numItems] = new TItem; FItems[numItems]->Value = NewValue; numItems++; return FItems[numItems - 1]->UIN; } TUINList::~TUINList() { for(unsigned int i = 0; i < numItems; i++) delete FItems[i]; free(FItems); } void TUINList::Del(int UIN) { for(unsigned int i = 0; i < numItems; i++) { if (FItems[i]->UIN == UIN && numItems > 1) { *FItems[i] = *FItems[numItems - 1]; // это delete FItems[numItems - 1]; // это FItems[numItems - 1] = NULL; // это numItems--; break; } } } std::string TUINList::operator[](unsigned int index) const { return GetItem(index); } std::string& TUINList::operator[](unsigned int index) { for(unsigned int i = 0; i < numItems; i++) { if (FItems[i]->UIN == index) { return FItems[i]->Value; } } static std::string str; return str; } std::string TUINList::GetItem(int UIN) const { for(unsigned int i = 0; i < numItems; i++){ if (FItems[i]->UIN == UIN) return FItems[i]->Value; } return ""; } void TUINList::SetItem(int UIN, const std::string& NewValue) { for(unsigned int i = 0; i < numItems; i++){ if (FItems[i]->UIN == UIN) { FItems[i]->Value = NewValue; return; } } } int main(int argc, _TCHAR* argv[]) { TUINList UINList; int UIN[3] = {0};// это UIN[0] = UINList.Add("A VAM "); // это UIN[1] = UINList.Add("SLABO"); // это UIN[2] = UINList.Add(" POVTORIT''?"); // это std::cout << UINList[UIN[0]] + UINList[UIN[1]] + UINList[UIN[2]];// это UINList.Del(UIN[0]); // это UINList.Del(UIN[2]); // это UINList[UIN[2]] = "NU-NU ;)"; // это std::cout << UINList[UIN[2]]; // это getchar(); return 0; } |
Как организовать рендеринг большой сцены? | 10 июня 2006 | 12:49 | #1 |
---|
Arks
Однозначного вопроса нет.
>Сцена состоит из двумерного ландшафта и множества трёхмерных объектов на ней
Объекты динамические? (т.е. меняют свое положение?)Для статики тебе нужно побить ландшафт на QuadTree/Octree дерево. Для динамических объектов все усложняется.
>Только вот им нужно, чтобы элементы всех массивов соответствовали друг другу, т.е. для каждой вершины свой вектор нормали, свои координаты текстуры, так?
чето не понял вопроса. Но в принципе так и должно быть
>У меня есть массив клеток ландшафта, каждой соответствует текстура (индекс из массива текстур) и характеристики.
не вдаваясь в структуру твоей клетки ландшафта тут для начала нужно сделать сортировку по текстурам(в будущем появятся материалы с шедерами, поэтому сортировать нужно по материалам). Это нужно для повышения быстродействия. Т.е. ты 1 раз выбираешь текстуру и выводишь часть полигонов принадлежещих этой текстуре, потом следующая текстура и т.д. быстродействие повысится. Тут можно пойти 2 путями:
1) для каждой группы полигонов создать вершинный буфер и потом его выставлять с выбором тестуры
2) создать единый буфер для всего ландшатфа, для каждой группы полигонов выводить начиная со стартовой вершины которая будет смещаться в кажой группе.
1 способ требует частой смены вершинный буфероо что не очень хорошо. Во втором спосоюе может быть ограничения как на создание вершинного буфера так и на вывод
ограниченного число полигонов за 1 вызов вот точно не знаю как тут в OpenGL обутося дела. В Direct3D точно есть такие моменты.
Следует учесть что эти 2 способа слудует применить к узлам Quad/Octree деорева. Тогда рекурсивно проходя по дереву в зависимости от положения камеры можно отбросить заведено не видимые узлы и рендерить только те листья(узлы к оторых данный геометрии) которые видны. Это здорово должно прибавить быстродействие если всне правильнос делать.
Еще можно попутно создавать индексный буфер тогда умешьтся число передаваемых вершин видеокарте его тоже сдедует хранить в узлах в первом случае или создать единый индексный буфер и хранить стартовй узел для каждого узла.
В общем вроде все объяснил.
Однозначного вопроса нет.
>Сцена состоит из двумерного ландшафта и множества трёхмерных объектов на ней
Объекты динамические? (т.е. меняют свое положение?)Для статики тебе нужно побить ландшафт на QuadTree/Octree дерево. Для динамических объектов все усложняется.
>Только вот им нужно, чтобы элементы всех массивов соответствовали друг другу, т.е. для каждой вершины свой вектор нормали, свои координаты текстуры, так?
чето не понял вопроса. Но в принципе так и должно быть
>У меня есть массив клеток ландшафта, каждой соответствует текстура (индекс из массива текстур) и характеристики.
не вдаваясь в структуру твоей клетки ландшафта тут для начала нужно сделать сортировку по текстурам(в будущем появятся материалы с шедерами, поэтому сортировать нужно по материалам). Это нужно для повышения быстродействия. Т.е. ты 1 раз выбираешь текстуру и выводишь часть полигонов принадлежещих этой текстуре, потом следующая текстура и т.д. быстродействие повысится. Тут можно пойти 2 путями:
1) для каждой группы полигонов создать вершинный буфер и потом его выставлять с выбором тестуры
2) создать единый буфер для всего ландшатфа, для каждой группы полигонов выводить начиная со стартовой вершины которая будет смещаться в кажой группе.
1 способ требует частой смены вершинный буфероо что не очень хорошо. Во втором спосоюе может быть ограничения как на создание вершинного буфера так и на вывод
ограниченного число полигонов за 1 вызов вот точно не знаю как тут в OpenGL обутося дела. В Direct3D точно есть такие моменты.
Следует учесть что эти 2 способа слудует применить к узлам Quad/Octree деорева. Тогда рекурсивно проходя по дереву в зависимости от положения камеры можно отбросить заведено не видимые узлы и рендерить только те листья(узлы к оторых данный геометрии) которые видны. Это здорово должно прибавить быстродействие если всне правильнос делать.
Еще можно попутно создавать индексный буфер тогда умешьтся число передаваемых вершин видеокарте его тоже сдедует хранить в узлах в первом случае или создать единый индексный буфер и хранить стартовй узел для каждого узла.
В общем вроде все объяснил.
Из Дельфи в Си? И из Си в Дельфи? | 10 июня 2006 | 1:08 | #279 |
---|
Joes
Отлично сказано ;)
Отлично сказано ;)
Holywar: AngelScript vs Lua | 9 июня 2006 | 22:02 | #42 |
---|
DaRT
>Python 2.4 по скорости такой же тормознутый как Python 2.3.5. Тут особо ни на что не расчитывай...
Ты думаешь он мне нужен?? я вот начал Lua использовать и мне ничего не надо для скриптов кроме его :))) Я просто спросил чтобы быть полностьтю уверенным что Lua самый быстрый скриптовый язык.
>Python 2.4 по скорости такой же тормознутый как Python 2.3.5. Тут особо ни на что не расчитывай...
Ты думаешь он мне нужен?? я вот начал Lua использовать и мне ничего не надо для скриптов кроме его :))) Я просто спросил чтобы быть полностьтю уверенным что Lua самый быстрый скриптовый язык.
Holywar: AngelScript vs Lua | 9 июня 2006 | 20:57 | #40 |
---|
xpinguin
Круто Lua всех рвет, но вот Python 2.4 уже есть как думаешь он чуть бстрей будет не пробовал?
Круто Lua всех рвет, но вот Python 2.4 уже есть как думаешь он чуть бстрей будет не пробовал?
Из Дельфи в Си? И из Си в Дельфи? | 9 июня 2006 | 15:39 | #263 |
---|
XProger
>что не в состоянии котролировать свой код - залить в бетон такого программиста.
я что -то не понимаю про что тут иемется ввиду? Есть средства для облегчения работы он их привел в пример разве у убогого Delphi такого нет, есть но они уступают по возможностям.
>Это "убожество" имеет один из сложнейших по устройтву компиляторов. Кстати, одной из целей С++ была убогость (простота устройства) компилятора :)
в Delphi это самый примитивный компилятор однопроходный. Оптимизации нет, контроль типов и Малая скоростьт.д.в общем смерительная рубашка.
серьезный софт пишется на C/C++. Слабо признать факт поритирования Quake II на убогое Delphi?
170 FPS - Убогое Delphi 290 - C
Есть разница? далее увеличиваем сложно до Quake III я сомневаюсь что там будет больше 50 - уже нет реалистичности так что в топку Delphi
>что не в состоянии котролировать свой код - залить в бетон такого программиста.
я что -то не понимаю про что тут иемется ввиду? Есть средства для облегчения работы он их привел в пример разве у убогого Delphi такого нет, есть но они уступают по возможностям.
>Это "убожество" имеет один из сложнейших по устройтву компиляторов. Кстати, одной из целей С++ была убогость (простота устройства) компилятора :)
в Delphi это самый примитивный компилятор однопроходный. Оптимизации нет, контроль типов и Малая скоростьт.д.в общем смерительная рубашка.
серьезный софт пишется на C/C++. Слабо признать факт поритирования Quake II на убогое Delphi?
170 FPS - Убогое Delphi 290 - C
Есть разница? далее увеличиваем сложно до Quake III я сомневаюсь что там будет больше 50 - уже нет реалистичности так что в топку Delphi
Из Дельфи в Си? И из Си в Дельфи? | 9 июня 2006 | 15:21 | #260 |
---|
XProger
>надуманными фактами работы с unit'ами, самоудаляющимися классами и другими элементами
а почему надуманные факты? это реально применяется достаточно широко.
примеры с std::auto_ptr/boost::shared_ptr это как раз показатель мощь C++ шаблонов, они скрывают недостаток C++, позволяю сосредоточиться на задаче, Чего в Убогом Delphi нет и надо как тут говорили "внимательно писать" ну почему ты это не признвешь? Это ЖЕ ФАКТ ;)
Joes
забей это бесполезно Delphi'ты будуд до пенсии прогать на убожестве :)))
>надуманными фактами работы с unit'ами, самоудаляющимися классами и другими элементами
а почему надуманные факты? это реально применяется достаточно широко.
примеры с std::auto_ptr/boost::shared_ptr это как раз показатель мощь C++ шаблонов, они скрывают недостаток C++, позволяю сосредоточиться на задаче, Чего в Убогом Delphi нет и надо как тут говорили "внимательно писать" ну почему ты это не признвешь? Это ЖЕ ФАКТ ;)
Joes
забей это бесполезно Delphi'ты будуд до пенсии прогать на убожестве :)))
Помогите с переходом D3D -> OGL | 9 июня 2006 | 14:51 | #21 |
---|
Костян
Поробуй так
Поробуй так
glEnableGL_SCISSOR_TEST); glScissor(x,y, Width, Height); .... glDisable(GL_SCISSOR_TEST);
C++ - вопрос Новичка | 9 июня 2006 | 14:14 | #10 |
---|
keltar
>а что есть хоть один компилятор, который полностью соответствует стандарту цэпэпэ? очень сомневаюсь
я имел ввиду что BDS должен быть лучше чем C++ Builder 6.0 оказыввается Borland продолжает гнать отстой, а прошло уже 4 года.
>а что есть хоть один компилятор, который полностью соответствует стандарту цэпэпэ? очень сомневаюсь
я имел ввиду что BDS должен быть лучше чем C++ Builder 6.0 оказыввается Borland продолжает гнать отстой, а прошло уже 4 года.
Visual С++ vs. Delphi | 8 июня 2006 | 22:49 | #2544 |
---|
Sniper
>Так что ты в который раз идёшь учить матчасть/пить яд/убиваться аб стену (нужное подчеркнуть) так как показал свою некомпетентность и в этом вопросе
может ты пойдешь попить?
я знаю что Pascal старше C на 1 год!!!
но мы говорим про C++ и Object Pascal!!! ты что попутался??????? :)))))))))))))
дак вот C++ страше Object Pascal!! т.к. он начал разрабатываться где-то с 1979 года а убогий Object Pascal когда появился???
Первая версия Object Pascal случайно не 1995 году вышла когда появилось первый выродок убожества Delphi 1.0 разве нет???
и потом от версии к версии убожестов стало передирать у языка C++ его возможности : параметры функций по умолчанию, перегрузка, ключевое слово class
у Pascal то object так что давай учить матчасть/пить яд/убиваться аб стену (нужное подчеркнуть) так как показал свою некомпетентность и в этом вопросе.
>Так что ты в который раз идёшь учить матчасть/пить яд/убиваться аб стену (нужное подчеркнуть) так как показал свою некомпетентность и в этом вопросе
может ты пойдешь попить?
я знаю что Pascal старше C на 1 год!!!
но мы говорим про C++ и Object Pascal!!! ты что попутался??????? :)))))))))))))
дак вот C++ страше Object Pascal!! т.к. он начал разрабатываться где-то с 1979 года а убогий Object Pascal когда появился???
Первая версия Object Pascal случайно не 1995 году вышла когда появилось первый выродок убожества Delphi 1.0 разве нет???
и потом от версии к версии убожестов стало передирать у языка C++ его возможности : параметры функций по умолчанию, перегрузка, ключевое слово class
у Pascal то object так что давай учить матчасть/пить яд/убиваться аб стену (нужное подчеркнуть) так как показал свою некомпетентность и в этом вопросе.
INT 21H Установка даты | 8 июня 2006 | 22:36 | #5 |
---|
L1f
>PS Про VMWare и VirtualPC все понял. Просто возможности установить эти немаленькие системы на "клиентскую" машину нет (ибо я сдаю лабы по асемблеру на хп :)
значит препод ламак!!
кто-же использует DOS прерывания в Windows?????
>PS Про VMWare и VirtualPC все понял. Просто возможности установить эти немаленькие системы на "клиентскую" машину нет (ибо я сдаю лабы по асемблеру на хп :)
значит препод ламак!!
кто-же использует DOS прерывания в Windows?????