Сообщения на форуме пользователя Andrey (99 стр.)
Visual С++ vs. Delphi | 25 сен. 2008 | 15:50 | #4258 |
---|
NightmareZ
>Неужели сишники до такого опустились :(
я ошибся немного смотри пост 4254
тестируй хоть до посинения, Delphi проигрывает как не крути.
>Неужели сишники до такого опустились :(
я ошибся немного смотри пост 4254
тестируй хоть до посинения, Delphi проигрывает как не крути.
Visual С++ vs. Delphi | 25 сен. 2008 | 14:03 | #4248 |
---|
VoidEx
в общем собрал я твою функцию для 3 компиляторов(GCC(mingw), Watcom(OpenWatcom), Microsoft Visual C++). Скорость была выше на чем у убогого Delphi. Написал вывод результатов аналогично Delphi, проекту любезно предоставленного DROnik
вот код программы:
D:\Temp\sort>Project1.exe
Size of data = 100b
Element count = 1000000
703ms
в общем собрал я твою функцию для 3 компиляторов(GCC(mingw), Watcom(OpenWatcom), Microsoft Visual C++). Скорость была выше на чем у убогого Delphi. Написал вывод результатов аналогично Delphi, проекту любезно предоставленного DROnik
вот код программы:
// sort.cpp : Defines the entry point for the console application. // #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <cstdio> #undef min #undef max #include <algorithm> #include <vector> #ifdef _MSC_VER #define INLINE __forceinline #endif #ifndef INLINE #define INLINE inline #endif struct TSortData { typedef unsigned int uint; uint Val; uint balast[24]; INLINE bool operator < (const TSortData& data) { return Val < data.Val; } }; template <typename iter> void qsort(iter from, iter to) { iter f = from; iter t = to; iter m = f + (t - f) / 2; while (f <= t) { while (*f < *m) ++f; while (*m < *t) --t; if (f <= t) { std::swap(*f, *t); if (m == f) m = t; else if (m == t) m = f; ++f; --t; } } if (t > from) qsort(from, t); if (f < to) qsort(f, to); } int main(int argc, char* argv[]) { enum { size = 1000000 }; std::vector<TSortData> data(size); for(int i = 0; i < size; ++i) { data[i].Val = size-i; } std::fprintf(stderr, "%s%d%s", "Size of data = ", sizeof(TSortData), "b\n"); std::fprintf(stderr, "%s%d%s", "Element count = ", size, "\n"); DWORD t = GetTickCount(); #ifdef STLPORT qsort(data.begin(), data.end()); #else qsort(&data[0], &data[0] + size); #endif std::fprintf(stderr, "%d%s", GetTickCount() - t, "ms"); std::getchar(); return 0; } |
Size of data = 100b
Element count = 1000000
703ms
D:\Temp\sort>SortGCC.exe
Size of data = 100b
Element count = 1000000
672ms
D:\Temp\sort>sortMSVC.exe
Size of data = 100b
Element count = 1000000
609ms
D:\Temp\sort>sortWatcom.exe
Size of data = 100b
Element count = 1000000
640ms
[/code]
вот залил в качалку все 4 exe файла в ом числе и Delphi и все проекты под Open Watcom, Code Blocks, Visual C++ 2005.
http://www.gamedev.ru/download/?id=7835
в общем Delphi опять облажался и в синтетических тестах(типа этого) и в реальных задачах к примеру Quake II :))))
http://www.gamedev.ru/flame/forum/?id=12025&page=4
Правка ошибся в 1 нуле
Еще раз обновление
переставил местами вывод в консоль
Правка: 25 сен. 2008 15:45
ATI и AMD !!! как же вы мне дороги ! | 23 сен. 2008 | 18:24 | #57 |
---|
hate
>там тоже частенько новый драйвер портит что нибудь в любимых и популярных игрушках под DX ...
это бывает очень редко.
>там тоже частенько новый драйвер портит что нибудь в любимых и популярных игрушках под DX ...
это бывает очень редко.
Проблема с форматом цвета на OpenGL и Direct3D | 23 сен. 2008 | 15:07 | #4 |
---|
sse
>2. Чтобы не было проблем с VS 2005 (DirectX® 8.0 SDK использует libc.lib и вообще всячески не дружит с новым вижуалом)
ну я натыкался на libci.lib, в любом случа попробуй проигнорировать эту библиотеку в настройках линковщика.
>2. Чтобы не было проблем с VS 2005 (DirectX® 8.0 SDK использует libc.lib и вообще всячески не дружит с новым вижуалом)
ну я натыкался на libci.lib, в любом случа попробуй проигнорировать эту библиотеку в настройках линковщика.
Проходы рендеринга. | 23 сен. 2008 | 11:52 | #5 |
---|
X
>В шейдерах есть техники, в техниках есть Pass'ы. Это и есть проходы рендера.
точнее в эффектах
Subject
>Какую смысловую нагрузку несут пассы и техники?
Это в терминах FX файлов (ID3DXEffect/ID3D10Effect или CgFX) ATI RenderMonkey использует свою систему проходов без FX, FX Composer использует FX файлы.
принцип простой
Technique(техника) - техника рендеринга - использует набор проходов рендеринга + параметры рендерига (Render State's);
Pass(проход) - комбинация вершиного и пиксельного шейдера использующиxся в данном проходе.
При использовании эффекта ставим нужную технику, делаем цикл по проходам и рендерим объекты с нужными параметрами и т.д.
для простоты что-бы разобраться с проходами лучше использовать FX файлы.
>В шейдерах есть техники, в техниках есть Pass'ы. Это и есть проходы рендера.
точнее в эффектах
Subject
>Какую смысловую нагрузку несут пассы и техники?
Это в терминах FX файлов (ID3DXEffect/ID3D10Effect или CgFX) ATI RenderMonkey использует свою систему проходов без FX, FX Composer использует FX файлы.
принцип простой
Technique(техника) - техника рендеринга - использует набор проходов рендеринга + параметры рендерига (Render State's);
Pass(проход) - комбинация вершиного и пиксельного шейдера использующиxся в данном проходе.
При использовании эффекта ставим нужную технику, делаем цикл по проходам и рендерим объекты с нужными параметрами и т.д.
для простоты что-бы разобраться с проходами лучше использовать FX файлы.
Кроссплатформенное приложение | 19 сен. 2008 | 13:18 | #10 |
---|
$tatic
я же сказал что если не нужен сложный интерфейс. Есл инужег то уже сказали QT, либо wxWidgets
я же сказал что если не нужен сложный интерфейс. Есл инужег то уже сказали QT, либо wxWidgets
Кроссплатформенное приложение | 19 сен. 2008 | 11:22 | #8 |
---|
MasterHrust
Попробуй для SDL(www.libsdl.org) если тебе не нужен сложный интерефейс. Очень стабильная и хорошая библиотека. Для сети можно посмотреть boost::asio либо напрямую работать с сокетами.
Попробуй для SDL(www.libsdl.org) если тебе не нужен сложный интерефейс. Очень стабильная и хорошая библиотека. Для сети можно посмотреть boost::asio либо напрямую работать с сокетами.
Проблема с форматом цвета на OpenGL и Direct3D | 19 сен. 2008 | 10:56 | #1 |
---|
sse
вроде так. Я для каждого рендера конвертировал. К примеру система частиц стала выглядеть одинаково на обоих рендерах.
вроде так. Я для каждого рендера конвертировал. К примеру система частиц стала выглядеть одинаково на обоих рендерах.
Создание CgFX эффектов | 18 сен. 2008 | 18:24 | #3 |
---|
Crow
>А Direct3D какой - Direct3D 9 или Direct3D 10 (как я понял там есть разница)
Cg 2.1 есть поддержка Direct3D10, а так есть поддержка Direct3D8/Direct3D9
>И еще: при использовании OpenGL никаких отличий нет (я сам пишу под OpenGL)?
нет для этого и придумали Cg что-бы не зависеть от API.
>А Direct3D какой - Direct3D 9 или Direct3D 10 (как я понял там есть разница)
Cg 2.1 есть поддержка Direct3D10, а так есть поддержка Direct3D8/Direct3D9
>И еще: при использовании OpenGL никаких отличий нет (я сам пишу под OpenGL)?
нет для этого и придумали Cg что-бы не зависеть от API.
ATI и AMD !!! как же вы мне дороги ! | 18 сен. 2008 | 17:28 | #10 |
---|
hate
переходи на Direct3D9/Direct3D10
ну что тут еще сказать?
переходи на Direct3D9/Direct3D10
ну что тут еще сказать?
Создание CgFX эффектов | 18 сен. 2008 | 17:19 | #1 |
---|
Crow
CgFX == fx файлам в случае Direct3D
глянь еще FX Composer
CgFX == fx файлам в случае Direct3D
глянь еще FX Composer
Готовые движки... | 17 сен. 2008 | 13:10 | #55 |
---|
SunnyDay
+1
fsmoke
>А зачем свою кривоту выкладывать в инет-то, пишите у себя дома под одеялом хоть движок, хоть чёрта лысого, на фиг этот высер мозга в инет выкладывать.
тебе жалко что-ли :)))?
пусть народ пишет развивается :)
может некоторые хотя разрабатывать именно движки, а не игры есть и такие< почему-бы и нет? или будет тогда бесконечый замкнутый круг... любой движок написанный с нуля кривой нафиг его выкладывать. Но попасть в эту область можно таки тоько способом. Да и опыт приходит незаменимый.
+1
fsmoke
>А зачем свою кривоту выкладывать в инет-то, пишите у себя дома под одеялом хоть движок, хоть чёрта лысого, на фиг этот высер мозга в инет выкладывать.
тебе жалко что-ли :)))?
пусть народ пишет развивается :)
может некоторые хотя разрабатывать именно движки, а не игры есть и такие< почему-бы и нет? или будет тогда бесконечый замкнутый круг... любой движок написанный с нуля кривой нафиг его выкладывать. Но попасть в эту область можно таки тоько способом. Да и опыт приходит незаменимый.
Скелетная анимация работает с матрицами 4x4 не работает с матрицами 4x3(Проблема решена) | 16 сен. 2008 | 23:52 | #9 |
---|
Проблема решена. Переписал класс матрицы 4x3 и поменял в шейдере порядок умножения.
Все спасибо за ответы. Отдельное спасибо Wraith.
Все спасибо за ответы. Отдельное спасибо Wraith.
Скелетная анимация работает с матрицами 4x4 не работает с матрицами 4x3(Проблема решена) | 15 сен. 2008 | 19:31 | #8 |
---|
Wraith
>P.S. (ОТ) хочу заметить, что Andrey, ты очень хорошо сделал, что развернуто запостил все свои исследования проблемы в пост №0. Телепатия вообще не >понадобилась. Вот у кого новичкам надо учиться, как задавать вопросы.
Спасибо :) за комплимент.
я прост глубоко понял проблему вот и все запостил до самых мелочей надеясь получить ответ.
>>Придется тогда переписать класс матрицы.
>ИМХО, тебе это не надо. Просто напиши упаковщик, который пакует 4х4 --> 4х3.
Ох я упрямый люблю наступать на грабли ибо это дает опыт, я все-таки перепишу класс, поэксперементирую, распишу как assembler ный код трансформирует вершины с учетом размеров матриц. Код будет похож на код упакорвщика тем более мне так удобнее.
Сегодня по посту 5 я понял, что реально ступил глянув как в регистрах будет матрица, ведь там черти что передавалось.
>P.S. (ОТ) хочу заметить, что Andrey, ты очень хорошо сделал, что развернуто запостил все свои исследования проблемы в пост №0. Телепатия вообще не >понадобилась. Вот у кого новичкам надо учиться, как задавать вопросы.
Спасибо :) за комплимент.
я прост глубоко понял проблему вот и все запостил до самых мелочей надеясь получить ответ.
>>Придется тогда переписать класс матрицы.
>ИМХО, тебе это не надо. Просто напиши упаковщик, который пакует 4х4 --> 4х3.
Ох я упрямый люблю наступать на грабли ибо это дает опыт, я все-таки перепишу класс, поэксперементирую, распишу как assembler ный код трансформирует вершины с учетом размеров матриц. Код будет похож на код упакорвщика тем более мне так удобнее.
Сегодня по посту 5 я понял, что реально ступил глянув как в регистрах будет матрица, ведь там черти что передавалось.
Скелетная анимация работает с матрицами 4x4 не работает с матрицами 4x3(Проблема решена) | 15 сен. 2008 | 8:01 | #6 |
---|
Wraith
я правильно понимаю что в случае использования матрицы 4x3 у меня потерялась позиция?
Если так то, я теперь понял в чем проблема. Придется тогда переписать класс матрицы.
я правильно понимаю что в случае использования матрицы 4x3 у меня потерялась позиция?
Если так то, я теперь понял в чем проблема. Придется тогда переписать класс матрицы.