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

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

Visual С++ vs. Delphi25 сен. 200815:50#4258
NightmareZ
>Неужели сишники до такого опустились :(
я ошибся немного смотри пост 4254
тестируй хоть до посинения, Delphi проигрывает как не крути.
Visual С++ vs. Delphi25 сен. 200814:03#4248
VoidEx
в общем собрал я твою функцию для 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;
}
D:\Temp\sort>Project1.exe
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 сен. 200818:24#57
hate
>там тоже частенько новый драйвер портит что нибудь в любимых и популярных игрушках под DX ...
это бывает очень редко.
Проблема с форматом цвета на OpenGL и Direct3D23 сен. 200815:07#4
sse
>2. Чтобы не было проблем с VS 2005 (DirectX® 8.0 SDK использует libc.lib и вообще всячески не дружит с новым вижуалом)
ну я натыкался на libci.lib, в любом случа попробуй проигнорировать эту библиотеку в настройках линковщика.
Проходы рендеринга.23 сен. 200811:52#5
X
>В шейдерах есть техники, в техниках есть Pass'ы. Это и есть проходы рендера.
точнее в эффектах
Subject
>Какую смысловую нагрузку несут пассы и техники?
Это в терминах FX файлов (ID3DXEffect/ID3D10Effect или CgFX) ATI RenderMonkey использует свою систему проходов без FX, FX Composer использует FX файлы.
принцип простой
Technique(техника) - техника рендеринга  - использует набор проходов рендеринга + параметры рендерига (Render State's);
Pass(проход) - комбинация вершиного и пиксельного шейдера использующиxся в данном проходе.
При использовании эффекта ставим нужную технику, делаем цикл по проходам и рендерим объекты с нужными параметрами и т.д.
для простоты что-бы разобраться с проходами лучше использовать FX файлы.

Кроссплатформенное приложение19 сен. 200813:18#10
$tatic
я же сказал что если не нужен сложный интерфейс. Есл инужег то уже сказали QT, либо wxWidgets
Кроссплатформенное приложение19 сен. 200811:22#8
MasterHrust
Попробуй для SDL(www.libsdl.org) если тебе не нужен сложный интерефейс. Очень стабильная и хорошая библиотека. Для сети можно посмотреть boost::asio либо напрямую работать с сокетами.
Проблема с форматом цвета на OpenGL и Direct3D19 сен. 200810:56#1
sse
вроде так. Я для каждого рендера конвертировал. К примеру система частиц стала выглядеть одинаково на обоих рендерах.
Создание CgFX эффектов18 сен. 200818:24#3
Crow
>А Direct3D какой - Direct3D 9 или Direct3D 10 (как я понял там есть разница)
Cg 2.1 есть поддержка Direct3D10, а так есть поддержка Direct3D8/Direct3D9
>И еще: при использовании OpenGL никаких отличий нет (я сам пишу под OpenGL)?
нет для этого и придумали Cg что-бы не зависеть от API.
ATI и AMD !!! как же вы мне дороги !18 сен. 200817:28#10
hate
переходи на Direct3D9/Direct3D10
ну что тут еще сказать?
Создание CgFX эффектов18 сен. 200817:19#1
Crow
CgFX == fx файлам в случае Direct3D
глянь еще FX Composer
Готовые движки...17 сен. 200813:10#55
SunnyDay
+1
fsmoke
>А зачем свою кривоту выкладывать в инет-то, пишите у себя дома под одеялом хоть движок, хоть чёрта лысого, на фиг этот высер мозга в инет выкладывать.
тебе жалко что-ли :)))?
пусть народ пишет развивается :)
может некоторые хотя разрабатывать именно движки, а не игры есть и такие< почему-бы и нет? или будет тогда бесконечый замкнутый круг... любой движок написанный с нуля кривой нафиг его выкладывать. Но попасть в эту область можно таки тоько способом. Да и опыт приходит незаменимый.
Скелетная анимация работает с матрицами 4x4 не работает с матрицами 4x3(Проблема решена)16 сен. 200823:52#9
Проблема решена. Переписал класс матрицы 4x3 и поменял в шейдере порядок умножения.
Все спасибо за ответы. Отдельное спасибо Wraith.
Скелетная анимация работает с матрицами 4x4 не работает с матрицами 4x3(Проблема решена)15 сен. 200819:31#8
Wraith
>P.S. (ОТ) хочу заметить, что Andrey, ты очень хорошо сделал, что развернуто запостил все свои исследования проблемы в пост №0. Телепатия вообще не >понадобилась. Вот у кого новичкам надо учиться, как задавать вопросы.
Спасибо :) за комплимент.
я прост глубоко понял проблему вот и все запостил до самых мелочей надеясь получить ответ.
>>Придется тогда переписать класс матрицы.
>ИМХО, тебе это не надо. Просто напиши упаковщик, который пакует 4х4 --> 4х3.
Ох я упрямый люблю наступать на грабли ибо это дает опыт, я все-таки перепишу класс,  поэксперементирую, распишу как assembler ный код трансформирует вершины с учетом размеров матриц. Код будет похож на код упакорвщика тем более мне так удобнее.
Сегодня по посту 5 я понял, что реально ступил глянув как в регистрах будет матрица, ведь там черти что передавалось.
Скелетная анимация работает с матрицами 4x4 не работает с матрицами 4x3(Проблема решена)15 сен. 20088:01#6
Wraith
я правильно понимаю что в случае использования матрицы 4x3  у меня потерялась позиция?
Если так то, я теперь понял в чем проблема. Придется тогда переписать класс матрицы.

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

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