Програмиране+Графика=?
8 отговора
478 прегледа
Програмиране+Графика=?
Здравейте,
къде ли не питах, къде ли не се рових, понякога си мислех, че съм открил точно това което търся, но в крайна сметка оставах разочарован.
Имам малък опит в програмирането на различни езици. В момента съм се спрял на Делфи и реших да се задържа.
Основно се занимавам с графика и анимация, искам просто да съчетая програмирането с анимацията.
Насочваха ме разни хора към различни компоненти на Делфи, но те не ми помогнаха.
Интересува ме единствено идеята, някое компетентно мнение, относно това, КАК ДА БУФЕРИРАМ ГРАФИЧНИ ФАЙЛОВЕ В ДЕЛФИ ЗА ДА МОГА В ПОСЛЕДСТВИЕ ДА ГИ ВИЗУАЛИЗИРАМ НА ЕКРАНА БЕЗ ДА ИМА ЗАБАВЯНЕ ИЛИ НАСИЧАНЕ ?
В случая става дума за спрайтове, не за Видео файлове. Елементарна анимация, редуване на отделни картинки. От това което чух до момента, става въпрос за някакъв буфер в който се качват всички изображения. Не съм сигурен дали е така. Трябва ли ми отделен компонент ?, писане на много код ?, писане на по-ниско ниво?... моля, насочете ме, ще съм Ви безкрайно благодарен. Ако има дори някаква литература в ИНтернет относно моя проблем и решаването му, ще съм благодарен ако ми дадете адреса.
Дали Делфи е езика който може да ми помогне или има друг който да е насочен към тези неща ?
Благодаря предварително !
къде ли не питах, къде ли не се рових, понякога си мислех, че съм открил точно това което търся, но в крайна сметка оставах разочарован.
Имам малък опит в програмирането на различни езици. В момента съм се спрял на Делфи и реших да се задържа.
Основно се занимавам с графика и анимация, искам просто да съчетая програмирането с анимацията.
Насочваха ме разни хора към различни компоненти на Делфи, но те не ми помогнаха.
Интересува ме единствено идеята, някое компетентно мнение, относно това, КАК ДА БУФЕРИРАМ ГРАФИЧНИ ФАЙЛОВЕ В ДЕЛФИ ЗА ДА МОГА В ПОСЛЕДСТВИЕ ДА ГИ ВИЗУАЛИЗИРАМ НА ЕКРАНА БЕЗ ДА ИМА ЗАБАВЯНЕ ИЛИ НАСИЧАНЕ ?
В случая става дума за спрайтове, не за Видео файлове. Елементарна анимация, редуване на отделни картинки. От това което чух до момента, става въпрос за някакъв буфер в който се качват всички изображения. Не съм сигурен дали е така. Трябва ли ми отделен компонент ?, писане на много код ?, писане на по-ниско ниво?... моля, насочете ме, ще съм Ви безкрайно благодарен. Ако има дори някаква литература в ИНтернет относно моя проблем и решаването му, ще съм благодарен ако ми дадете адреса.
Дали Делфи е езика който може да ми помогне или има друг който да е насочен към тези неща ?
Благодаря предварително !
Re: Програмиране+Графика=?
Здр
Според мен щом имаш някакво съмнение, че може би Делфи и Object Pascal не са съответно средата и езика, значи може би си на прав път...
Не че опитвам да те зарибя
да се прехвърлиш на друг език и/или API-та, но нали искаш съвет...аз мисля, че относно графиката мога да ти дам такъв, пък после ти решаваш какво ще правиш...
Така...според мен за да не се затормозяваш с GUI stuff-a на Windows-a, достъпен като Win32 API, можеш да се захванеш с OpenGL, понеже според мен за новаци е най-подходящото графично API, другия момент е, че може да прескочиш въпросното Win32 API (поне в началото де...) като ползваш примерно една библиотека - GLUT, която изолира Windows stuff-a и лесно ти позволява да визуализираш OpenGL-ски код в прозорец, като ти позволява да наблягаш на drawing кода...освен това GLUT e cross-platform.
Основната ми мисъл беше, че ако наистина се кефиш на графиката (и по-специално 3D), OpenGL-а няма да е чак толкова труден за научаване, поне по-основните неща...
Може би пък не съм те разбрал съвсем както трябва?!? и ти си държиш на Delphi, но все пак ако има нещо или ти е любопитно - питай...
най-често умните хора са и лоши
Според мен щом имаш някакво съмнение, че може би Делфи и Object Pascal не са съответно средата и езика, значи може би си на прав път...
Не че опитвам да те зарибя
Така...според мен за да не се затормозяваш с GUI stuff-a на Windows-a, достъпен като Win32 API, можеш да се захванеш с OpenGL, понеже според мен за новаци е най-подходящото графично API, другия момент е, че може да прескочиш въпросното Win32 API (поне в началото де...) като ползваш примерно една библиотека - GLUT, която изолира Windows stuff-a и лесно ти позволява да визуализираш OpenGL-ски код в прозорец, като ти позволява да наблягаш на drawing кода...освен това GLUT e cross-platform.
Основната ми мисъл беше, че ако наистина се кефиш на графиката (и по-специално 3D), OpenGL-а няма да е чак толкова труден за научаване, поне по-основните неща...
Може би пък не съм те разбрал съвсем както трябва?!? и ти си държиш на Delphi, но все пак ако има нещо или ти е любопитно - питай...
най-често умните хора са и лоши
Re: Програмиране+Графика=?
ako nemoje da loadnesh vsichko moje da pomislish za nyakakva kompresiya na kartinkite. Taka failowete se chetat po-barzo.
Ako moje da gi loadnesh, ne vijdam osobena prichina da ne si varwyat gladko.
Ako ima nyakakvo migane i tnt. si pomisli za offscreen buffer w koito da nachertavash kakvoto tryabva i posle go pokazwash na ekrana - mnogo pomaga.
Povecheto GUI-ta pozwolyawat chertaneto da minawa prez offscreen - samo nameri kak se puska.
Ako nishto ne pomaga si pusni nyakakaw profile na koda i vij kade se gubi nay mnogo vreme.
Ako moje da gi loadnesh, ne vijdam osobena prichina da ne si varwyat gladko.
Ako ima nyakakvo migane i tnt. si pomisli za offscreen buffer w koito da nachertavash kakvoto tryabva i posle go pokazwash na ekrana - mnogo pomaga.
Povecheto GUI-ta pozwolyawat chertaneto da minawa prez offscreen - samo nameri kak se puska.
Ako nishto ne pomaga si pusni nyakakaw profile na koda i vij kade se gubi nay mnogo vreme.
гледам че май нямя отговор за делфи...
та затова и аз да предложа нещо не баш за делфи. значи аз също се занимавам с графика, и когато искам да чертая със сносна скорост без да ползвам DirectDraw, използвам APIта. значи номера е следния, първо се взема контекста на прозореца с GetDC(), после се прави съвместим с него контекст в паметта с CreateCompatibleDC, после се прави битмап с CreateBitmap и се селектира в контекста в паметта, това се прави предварително. когато искаш да прехвърлиш паметта върху прозореца то първо я прехвърляш с SetBitmapBits в битмапа, после с BitBlt я мяташ на прозореца. два паса, значи не е най-бързото възможно, но какво да се прави. ако искаш пробвай да направиш битмап който да обхваща всичките ти кадри, и после да избираш видимия кадър със BitBlt. имай предвид че при пикселите в паметта младшия байт е син, да не се подлъжеш от SetPixel че е червен. успех :)
Re: гледам че май нямя отговор за делфи...
Аз предпочитам DrawDib функциите - правиш си битмап в паметта, мажеш вътре каквото искаш и накрая само го хвърляш на екрана с DrawDibDraw.
става, ама
DrawDibDraw приема параметри които ме навеждат на мисълта че прави конверсия на форматите и ще тича по-бавно. аз обаче не съм го пробвал, и ако има проверка за съвпадение на формата, може и да не е така.
Re: Програмиране+Графика=?
Zdravei
[линк] - ima primer za play na AVI file v OpenGL window (pisan e za Delphi).
Problem ne e cheteneto ot diska. To e dostatychno byrzo na segashnite mashini.
Ako ima migane, tova se poluchava, zashtoto niama BackBuffer.
Ako tova, koeto play-vash e "vinagi edno i syshto" - pravish si AVI file i si gotov.
Delphi ... Delphi implementira Win32 API mnogo uspeshno, edva li shte si reshish problemite s Visual C++.
Haide sys zdrave
[линк] - ima primer za play na AVI file v OpenGL window (pisan e za Delphi).
Problem ne e cheteneto ot diska. To e dostatychno byrzo na segashnite mashini.
Ako ima migane, tova se poluchava, zashtoto niama BackBuffer.
Ako tova, koeto play-vash e "vinagi edno i syshto" - pravish si AVI file i si gotov.
Delphi ... Delphi implementira Win32 API mnogo uspeshno, edva li shte si reshish problemite s Visual C++.
Haide sys zdrave
Re: гледам че май нямя отговор за делфи...
Bih se pridyrzhal kym idejata na zaphod. Za elementarno smenjane na kartinki vyrshi rabota perfektno, da ne govorim che se nauchava byrzo kak se pravi.
Stiga da ne sa mnogo golemi tvyrde "cvetni" kartinkite de.
Stiga da ne sa mnogo golemi tvyrde "cvetni" kartinkite de.