Tag: video

Entries for tag "video", ordered from most recent. Entry count: 17.

Uwaga! Informacje na tej stronie mają ponad 6 lat. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

Pages: > 1 2 3 >

# Generating and Compressing AVI Video Files

Mon
28
Dec 2009

Yesterday I've decided to share all my home code using Project Hosting on Google Code, so now everyone can browse my code online by entering project called blueway. I'll be very glad to hear your opinions and suggestions about it.

Today I've researched subject of generating video data as AVI file, compressed on the fly with codecs installed in Windows. After succeeding with that I've created simple class to support this task, called VideoCompressor. You can find it in Video.hpp and Video.cpp. Test code is in ProgramMain.cpp, line 2318. It generates a 5 second video with a white horizonal line moving from bottom to top.

Here are some technical details. Functionality needed to handle video files is already inside Windows API, described in MSDN Library. The AVIFile library contains functions like AVIFileOpen, AVIFileCreateStream, AVIStreamWrite. It supports reading and writing AVI files. You need to include <Vfw.h> header and link with Vfw32.lib file. AVI is actually a container file format made of RIFF data chunks identified by 4-byte FOURCC codes (if you ever loaded 3DS models, you know what I mean). It can contain multiple streams like video and audio, which can be coded in many different formats, compressed and decompressed by codecs.

Compressing and decompressing frames of video with installed codecs can be done with Video Compression Manager library. You can display standard, system dialog window to let the user choose and configure codec with ICCompressorChoose function. Then you can just pass subsequent video frames as uncompressed RGB images to a function like ICSeqCompressFrame and you get a piece of compressed data that you can save to your AVI file.

Comments | #video #winapi Share

# About Graphics in Modern Games

Tue
15
Sep 2009

There are always some "trendy" styles that differentiate professional creations from amateur ones. CollegeHumor made a parody of professional-looking trailer for fictional movie Minesweeper [en] and LIMO cabaret did the same with movie Leszek Balcerowicz - Nieznana historia [pl].

What about games? Today people I'm following on Tweeter posted interesting links about graphics in modern games. First, this comic says much. Dark, brown and gray colors are common in today's games, especially in some genres like action games (opposite to colourful fantasy RPG and arcade games, like Trine). Here is also a funny picture. Second, Kayamon posted on his blog quite serious note about how render target size can be reduced by using only two channels to describe pixel colors. His experiment gave quite good results with screenshots from Gears of War :)

Comments | #video #humor #rendering #web Share

# KD-Tree

Thu
09
Jul 2009

People at forums are usually advised to learn BSP, quadtree or octree as space partitioning data structure, but there are many more interesting structures than these three. This time my choice for home project is KD-tree. It's actually something between BSP and octree. Just like BSP it's a binary tree (each non-leaf node has two child nodes) and optimal splitting plane is estimated each time by special algorithm, but splitting planes are always aligned to one of three main axes and thus each node can be described by an AABB (axis-aligned bounding box), just like in octree.

As my tree is designed to manage objects and not geometry, nothing can be split and some of objects may intersect splitting planes. How to deal with them? I simply assign them to the parent node, so not only leaves are allowed to contain list of objects. To avoid too many small objects intersecting splitting planes to degrade performance by falling into top level nodes (it's called "sticky planes" or something like that :) I adopted "loose octree" idea to my KD-tree. It simply means I extend each node’s bounding box so that each node's children slightly overlap each other and small objects intersecting splitting plane fall into one of the children.

My KD-tree is also dynamic, which means it reorganizes itself as objects get added, removed and moved in the tree. It's actually quite simple. Each time an object is added to a node, that node can be split into two children if it's object number exceeds constant limit. Similarly node can be merged by deleting it's children each time an object is removed from one of its children, if the number of objects in that node and its children drops under constant minimum.

For additional performance, I allocate tree nodes from my own "Free List" memory pool and I keep objects connected to each node as doubly-linked list.

I also came up with an idea how to easily visualize quality of my space partitioning technique. I keep track of the number of tree nodes and objects on each depth level. This way I can tell from these several numbers whether tree is more "tall" or "wide" and whether most of objects stay in leaves instead of some top-level nodes.

Here are some screenshots and a video from my recent code:

KD-tree KD-tree KD-tree

Comments | #rendering #video #gallery #algorithms #math Share

# Aqua Fish 2 - moja gra dla firmy Play

Sun
20
Jul 2008

Ukazała się oficjalna zapowiedź gry Aqua Fish 2, którą pisałem przez ostatnie miesiące. Konkretnie to ja byłem programistą, grafikę stworzył gemGreg, muzykę i dźwięki Mimper, a wydawcą jest firma Play. Gra wkrótce będzie dostępna w sklepach, zapewne w przystępnej cenie :D Ma niskie wymagania sprzętowe (nie używa shaderów). Jest adresowana dla dzieci. Właściwie należy do gatunku Pacmana :) Gracz steruje rybką, która pływa między przeszkodami, zbiera punkty i dodatkowe przedmioty, a unika wrogich stworów (albo je niszczy). Grafika jest trójwymiarowa i kolorowa. Gra toczy się w 6 różnych titlesetach.

Na YouTube jest do obejrzenia filmik z gry:


Link

Comments | #games #productions #video Share

# Filmik z konferencji

Wed
16
Apr 2008

Zmontowałem mały teledysk ze zdjęć i filmików, jakie zrobiłem podczas konferencji. Więcej informacji TUTAJ.

Comments | #video #warsztat #events Share

# Drzewa i trawa - video

Sat
20
Oct 2007

Nie mogłem się powstrzymać, żeby jeszcze dziś nie opublikować filmiku, który właśnie skończyłem montować. Pokazuje on tworzenie drzewa za pomocą tymczasowego, napisanego na szybko edytora oraz renderowanie drzew, trawy i ogólnie przestrzeni otwartych w moim silniku.

Na tym skończyłem część botaniczną mojego kodu. Pozostała już tylko część hydrologiczna :)

Comments | #rendering #productions #engine #video Share

# Niebo skończone

Sun
30
Sep 2007

Uff! Napisałem dzisiaj chmury i tym samym skończyłem całe niebo. Chmury się animują i oczywiście są liczone na GPU. Nakręciłem nawet filmik :)

Comments | #rendering #video #gallery #engine #productions Share

# Gry a świat rzeczywisty

Tue
14
Aug 2007

To, czego ludzie najbardziej boją się w grach komputerowych, to pomieszanie świata rzeczywistego z grami. Ponieważ ze swoimi fobiami trzeba się oswajać, proponuję obejrzenie amatorskich filmików, które celowo mieszają realia rzeczywiste i wirtualne tworząc tzw. rzeczywistość wzbogaconą (ang. Augmented Reality) w oparciu o gry:

Osoby o nierozwiniętej albo spaczonej psychice nie powinny tego oglądać, a wszyscy oczywiście muszą pamiętać, żeby traktować je z dużym przymróżeniem oka :) Jeśli kogoś mimo wszystko bulwersują, to ma świetną okazję uświadomić sobie absurdalność takich fobii - w końcu to tylko filmiki, a prawdziwe filmy już nie takie rzeczy pokazywały i nikogo to nie dziwi.

Comments | #video #web #humor Share

Pages: > 1 2 3 >

[Download] [Dropbox] [pub] [Mirror] [Privacy policy]
Copyright © 2004-2024