Friday, August 7, 2009

CPU Caches 2

To achieve maximum performance of multi-threaded application you should run same jobs on same threads (CPU's). It's very important for applications based on small thread jobs.

Thursday, August 6, 2009

Physics status

Performance and stability of physics is much improved and it's not a final result:)

State of all physical objects can be stored into the special buffers. In this demos this buffers are used for time wrapping effect:







This is a heap of joints:




And funny stuff with homuncles:)

Sunday, August 2, 2009

Saturday, August 1, 2009

Timetable

Average timetable of last week:

18:00 home power on
19:00 office work on
11:00 office work off
11:30 home power off

Tuesday, July 28, 2009

Recent photo of the crew


From left to right:
* Frustum (Alexander Zaprjagaev) // CTO and The Brain
* Andrewko (Andrey Kolchin) // 3D artist
* Silvero (Iliya Abzaev) // developer
* ANet (Anna Ishina) // developer
* FadeToBlack (Alexey Egorov) // developer
* Silen (Vitaliy Sidorov) // game designer
* TmifX (Ivan Gulyaev) // developer
* Binstream (Denis Shergin) // CEO
* Pluton (Andrey Kushner) // lead 3D artist
* Brrrrr (Stanislav Zagniy) // 3D artist
* Manguste (Nadezhda Ovchinnikova) // technical writer

Missing on the photo: Jane (Eugenia Shergina), JL (Eugeniy Logvinov), Paralyzah (Michael Kondratyev).

PS: It was the opening night of "Harry Potter and the Half-Blood Prince" in Tomsk.
PPS: Siberian summer can be hot! but short as well :(

Tuesday, July 21, 2009

New script feature

Expression e0 = new Expression("133.0 * 133.0");
printf("%s\n",typeinfo(e0.run()));

Expression e1 = new Expression("{
int a,b,c,d;
return a + b + c + d;
}","a,b,c,d");
printf("%s\n",typeinfo(e1.run(1,2,3,4)));

Expression e2 = new Expression("{
string name;
File file = new File(name,\"rb\");
int size = file.getSize();
file.close();
delete file;
return size;
}","name");
printf("%s\n",typeinfo(e2.run("test.cpp")));



float: 17689
int: 10
int: 36339

Thursday, July 9, 2009

AMD_vertex_shader_tessellator

Don't provide tessellation for 3D artists, because the work will stop :)

Normal mapping:

Normal mapping + displacement:

Normal mapping + displacement wireframe:


Here is the video:


PS: The feature will be available in DirectX 11.

Saturday, July 4, 2009

Thursday, July 2, 2009

Unigine goes PS3

We made it, Unigine joined Tools & Middleware License Program for PLAYSTATION®3.

The process took 8 months to complete, it was kinda hard. Now we're going to get devkits and make the porting!

CPU Caches

Sometimes absolutely correct code can produces huge stalls because of cache misses.
For example if we have two 3D arrays: source ([128][128][16]) and destination ([16][128][128]) and we should copy data from source to destination.
Ordinary copying spends 5.0ms on old Athlon64 X2 3800+ CPU in this case.
But if we create a temporary copy array ([16][129][129]) and perform copying of data two times (from source to copy and from copy to destination), so copying time is only 1.9ms.