Re[2]: opengl vs directx с точки зрения шаровары
От: icezone  
Дата: 19.10.09 10:00
Оценка:
Здравствуйте, funikov, Вы писали:

F>10 лет назад сталкивался с Дельфи, там был какой-то TCanvas(или это было в С++ билдере? ), это всерьез использовать было нельзя, феерически тормознутая штука, не знаю, изменилось ли там что-то.


Кто ж его использует? Обычный битмап или секция и bitblt. Если данных слишком много, то прореживать. Визуализация 50Мб данных очень плавно происходит.
Re: opengl vs directx с точки зрения шаровары
От: Тимофей  
Дата: 19.10.09 15:46
Оценка:
Спасибо всем откликнувшимся.

Хочу кое-что пояснить.

1. Попиксельно — пройденный этап. Сейчас делаю так
for iy:=0 to Height-1 do begin
TrgLine:=res.ScanLine[iy];
for ix:=0 to Width-1 do
TrgLine[ix]:=...........;
end;
BitBlt(Canvas.Handle, 0,0,Width,Height, res.Canvas.Handle,0,0, SRCCOPY);

Я правильно понимаю, что это все, что можно выжать из дельфи без дополнительных средств ?


2. Что технически ogl и dx примерно равноценны для меня, я уже понял. Меня интересуют 2 вопроса:
— что проще освоить
— с чем меньше гемора при распространении.
С уважением! Тимофей
Re[2]: opengl vs directx с точки зрения шаровары
От: icezone  
Дата: 19.10.09 17:25
Оценка:
Здравствуйте, Тимофей, Вы писали:

Т> Я правильно понимаю, что это все, что можно выжать из дельфи без дополнительных средств ?


Зависит от того что выводится. Если данных много, то прореживать. Если попиксельная обработка, то MMX вам в помощь.
От языка программирования тут не многое зависит, главное правильная оптимизация.

Т>2. Что технически ogl и dx примерно равноценны для меня, я уже понял. Меня интересуют 2 вопроса:

Т> — что проще освоить
Т> — с чем меньше гемора при распространении.

— Проще DX, подробнейшая документация и куча примеров. Готовые хидеры.
— Гемора меньше с DX7, хотя я давно уже сижу на DX9 и никто не жаловался.

Если честно, то от DX и OpenGL вы существенного прироста быстродействия не получите.
У вас проблема не в доступе к видеопамяти, а в алгоритме отрисовки или обработки данных.
Re: opengl vs directx с точки зрения шаровары
От: TimurSPB Интернет  
Дата: 20.10.09 07:24
Оценка:
Здравствуйте, Тимофей, Вы писали:

Т>Всем привет!


Т>Написал программу на дельфи. Много вывода графики на экран, не тянет. Нужно ускорять.

Т>Как я понимаю, выбор невелик — opengl или directx — не знаю ни того ни другого,
Т>нужно что-то выбрать для освоения.

Т>Какое приложение удобнее распространять и поддерживать?


GDI+ может? gdiplus.dll за собой таскать в дистрибутиве.
Книга. См. главу про GDI+
Make flame.politics Great Again!
Re[2]: opengl vs directx с точки зрения шаровары
От: BulatZiganshin  
Дата: 20.10.09 10:24
Оценка: +2
Здравствуйте, Тимофей, Вы писали:

Т>1. Попиксельно — пройденный этап. Сейчас делаю так


а что в этом коде изменится от перехода на dx? или ты считаешь что это такая волшебная палочка, которая твой попиксельный код переведёт под gpu и он взлетит без крыльев?
Люди, я люблю вас! Будьте бдительны!!!
Re[2]: opengl vs directx с точки зрения шаровары
От: icezone  
Дата: 20.10.09 12:30
Оценка:
Здравствуйте, TimurSPB, Вы писали:

TSP>GDI+ может? gdiplus.dll за собой таскать в дистрибутиве.

TSP>Книга. См. главу про GDI+

GDI+ еще больше будет тормозить.
Re[3]: opengl vs directx с точки зрения шаровары
От: 8bit  
Дата: 21.10.09 09:18
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

+1, не взлетит.
Re[2]: opengl vs directx с точки зрения шаровары
От: Dimonka Верблюд  
Дата: 21.10.09 10:57
Оценка:
Здравствуйте, Тимофей, Вы писали:

Т>1. Попиксельно — пройденный этап. Сейчас делаю так

Т> for iy:=0 to Height-1 do begin
Т> TrgLine:=res.ScanLine[iy];
Т> for ix:=0 to Width-1 do
Т> TrgLine[ix]:=...........;
Т> end;
Т> BitBlt(Canvas.Handle, 0,0,Width,Height, res.Canvas.Handle,0,0, SRCCOPY);

Т> Я правильно понимаю, что это все, что можно выжать из дельфи без дополнительных средств ?


Можно сдеалать ещё быстрее, выжать несколько тактов на пиксель, но вопрос в другом, а надо ли рисовать столько ТОЧЕК?
Сможет ли пользователь воспринять так много информации? Может имеет смысл делать какую-то агрегацию результатов, групировать точки в какие-то более осмысленные примитивы итд. Тогда возможны будут и аппаратные и алгоритмические ускорения.
Re: Только DirectX
От: Turyst  
Дата: 28.10.09 10:36
Оценка:
Здравствуйте, Тимофей, Вы писали:

Не используй OpenGL. Причина банальна. Он есть не на всех компютерах. При установке WindowsXP она по умолчанию ставит свои драйвера для видеокарты, без поддержки OpenGL. Как с новыми системами — не знаю.
При использовании DirectX определись, нужна ли тебе прозрачность. Если нет можно использовать хоть DirectDraw(DirectX 7), если нужна, тогда можно будет использовать DirectGraphics и трансвормированный формат вершин(в екранных координатах).
Re[2]: opengl vs directx с точки зрения шаровары
От: Polarizer  
Дата: 28.10.09 13:31
Оценка:
Здравствуйте, Тимофей, Вы писали:

Если посмотрите в исх.код Scanline, то удивитесь (GgiFlush etc.).
Потому лучше выкинуть все TBitmap и проч. а (взять хидер к GDI)
создать DIB функцией GDI, получить прямой доступ в массиву байтов
и устанавливать пикселы напрямую. Для этого надо изучить структуру DIB(изображение перевернуто и выравнивание).
Но это того стоит.

p.s. где взять хидеры не в курсе, использую C++ и таких проблем не знаю, программы — графика,
отрисовка десятков тысяч примитивов и битмапов.

Т>1. Попиксельно — пройденный этап. Сейчас делаю так

Т> for iy:=0 to Height-1 do begin
Т> TrgLine:=res.ScanLine[iy];
Т> for ix:=0 to Width-1 do
Т> TrgLine[ix]:=...........;
Т> end;
Т> BitBlt(Canvas.Handle, 0,0,Width,Height, res.Canvas.Handle,0,0, SRCCOPY);
Re[3]: opengl vs directx с точки зрения шаровары
От: icezone  
Дата: 28.10.09 17:09
Оценка:
Здравствуйте, Polarizer, Вы писали:

P>Здравствуйте, Тимофей, Вы писали:


P>Если посмотрите в исх.код Scanline, то удивитесь (GgiFlush etc.).

P>p.s. где взять хидеры не в курсе, использую C++ и таких проблем не знаю, программы — графика,
P>отрисовка десятков тысяч примитивов и битмапов.

Да уж, делфовая реализация достаточно тормозная, но это расплата за VCL.
Хидеры нигде искать не надо, все есть в модуле graphics.
Re: opengl vs directx с точки зрения шаровары
От: swame  
Дата: 28.10.09 17:18
Оценка:
Здравствуйте, Тимофей, Вы писали:

Т>Всем привет!


Т>Написал программу на дельфи. Много вывода графики на экран, не тянет. Нужно ускорять.

Т>Как я понимаю, выбор невелик — opengl или directx — не знаю ни того ни другого,
Т>нужно что-то выбрать для освоения.

Т>Какое приложение удобнее распространять и поддерживать?


Покажите хоть скриншот что за тип графики.
Re[2]: Только DirectX
От: spion_007  
Дата: 28.10.09 17:48
Оценка:
Здравствуйте, Turyst, Вы писали:

T>Здравствуйте, Тимофей, Вы писали:


T>Не используй OpenGL. Причина банальна. Он есть не на всех компютерах. При установке WindowsXP она по умолчанию ставит свои драйвера для видеокарты, без поддержки OpenGL. Как с новыми системами — не знаю.

T>При использовании DirectX определись, нужна ли тебе прозрачность. Если нет можно использовать хоть DirectDraw(DirectX 7), если нужна, тогда можно будет использовать DirectGraphics и трансвормированный формат вершин(в екранных координатах).

Как обстоит дело с версиями DirectX на разных системах? Если я не ошибаюсь, то при установке SP2 на Windows XP на системе поселялся DirectX9. В Vista стоит DirectX10, а в Windows 7 стоит DirectX11. Но значит ли все это, что и в Висте и в Вин7 есть DirectX9? Или каждая последующая версия DirectX не имеет ничего общего с предыдущими версиями?
С уважением, Сергей
Re[3]: Только DirectX
От: icezone  
Дата: 28.10.09 19:02
Оценка: +1
Здравствуйте, spion_007, Вы писали:

_>Как обстоит дело с версиями DirectX на разных системах? Если я не ошибаюсь, то при установке SP2 на Windows XP на системе поселялся DirectX9. В Vista стоит DirectX10, а в Windows 7 стоит DirectX11. Но значит ли все это, что и в Висте и в Вин7 есть DirectX9? Или каждая последующая версия DirectX не имеет ничего общего с предыдущими версиями?


У меня в перемешку используется 7 и 9 версия. Под чистой Вистой и Семеркой идет без проблем.
Re[4]: Только DirectX
От: Allix Учет личных финансов
Дата: 28.10.09 20:28
Оценка: 1 (1)
Здравствуйте, icezone, Вы писали:

_>>Как обстоит дело с версиями DirectX на разных системах? Если я не ошибаюсь, то при установке SP2 на Windows XP на системе поселялся DirectX9. В Vista стоит DirectX10, а в Windows 7 стоит DirectX11. Но значит ли все это, что и в Висте и в Вин7 есть DirectX9? Или каждая последующая версия DirectX не имеет ничего общего с предыдущими версиями?


I>У меня в перемешку используется 7 и 9 версия. Под чистой Вистой и Семеркой идет без проблем.

А у меня игрушки под чистой семеркой не заработали. Пришлось ставить dx9 отдельно. Так что тут еще вопрос.
Как вести домашнюю бухгалтерию
Как научиться экономить деньги
Планирование семейного бюджета
Re[5]: Только DirectX
От: Turyst  
Дата: 28.10.09 23:21
Оценка:
Здравствуйте, Allix, Вы писали:

A>Здравствуйте, icezone, Вы писали:


_>>>Как обстоит дело с версиями DirectX на разных системах? Если я не ошибаюсь, то при установке SP2 на Windows XP на системе поселялся DirectX9. В Vista стоит DirectX10, а в Windows 7 стоит DirectX11. Но значит ли все это, что и в Висте и в Вин7 есть DirectX9? Или каждая последующая версия DirectX не имеет ничего общего с предыдущими версиями?


I>>У меня в перемешку используется 7 и 9 версия. Под чистой Вистой и Семеркой идет без проблем.

A>А у меня игрушки под чистой семеркой не заработали. Пришлось ставить dx9 отдельно. Так что тут еще вопрос.

Ни одна не заработала? Спрашиваю, потому, что может криво написано было... Там можно конкретно задать версию использованного DX, а можно инициализировать последнюю версию...
Re[6]: Только DirectX
От: Allix Учет личных финансов
Дата: 29.10.09 07:42
Оценка:
Здравствуйте, Turyst, Вы писали:

T>Ни одна не заработала? Спрашиваю, потому, что может криво написано было... Там можно конкретно задать версию использованного DX, а можно инициализировать последнюю версию...


Ну сам понимаешь, как только первая же не заработала (Spore) я скачал dx9 Так что не проверял
Как вести домашнюю бухгалтерию
Как научиться экономить деньги
Планирование семейного бюджета
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.