Code\Other projects


They are roughly sorted by the amount of work/dedication they required from me (bold since there are also projects that I was working on with a team).

Thesis

"Idea of 3d graphics engine using DirectX 10 and deferred shading"

The point of the thesis was to implement a simple deferred shading graphics engine in DirectX 10 and compare its speed to a forward one. Shaders were done in HLSL 4.0, models done in Blender (mostly free ones found on internet, tweaked and improved by myself), imported from .obj using Assimp.

I didn't invent anything new in this topic - just implemented simple deferred and forward renderer in D3D10, learning shaders, gfx programming, models and few other things along the way. Both the code and thesis text might be useful to people who want to implement their own deferred engine in DirectX - there's a thorough discussion of advantages and disadvantages of it, some implementation detail, and quite complete bibliography.


Abstract: Strengths and weaknesses of both forward and deferred approaches have been discussed in great detail. To measure and compare their peformance characteristics, profiling has been done using real life test maps. Results are commented and potential optimizations have been mentioned. Screen space visual effect "bloom" has been implemented. History of computer graphics, different approaches to rendering and lighting have been covered.


Hide 2 comments
People said...
Anonymous said  What a beautie!! Ioanna, she autelbsoly stunning and I am so happy I got to meet her in person. Yianni, again, you have done an amazing job. You have captured wonderful family moments. Good luck with beba\'s baptism
Anonymous said  LHpGaz
Add your comment:



Admin

SDL_Config

SDL_Config is a library designed for reading and writing configuration files in an easy, cross-platform way. It is the only library that I designed from start up to be used by other programmers, and such as that, I tried to make it as flexible and general as possible. It's written in structural C++ (yuck! I know :-)) for the reason of compatibility with C and C-compatible languages, but liberally uses STL deep inside.

I concentrated on creating clean, easy to use, logical API and writing good documentation for it (generated by NaturalDocs). Now it's fairly stable lib with some interesting capabilities, used by people here and there. Personally, I use it in many projects.

More than 6200 downloads of all versions on Sourceforge.

  • Release date: october 2005, new version released once a year
  • Platform: PC, portable source code
  • Technology: C++, STL, used SDL types and streams
  • Download: 115 kb .zip file
  • Homepage: SDL_Config homepage
Comment it!
People said...
Add your comment:



Admin

OpenGL GUI Presentation

My university teacher was looking for someone who could make little OpenGL presentation for other students. He mentioned that it should be sth simple like rotating cube, triangle etc. I said that I'm interested in creating such presentation, he agreed, I went home and started coding. You may see on screenshot what I've developed :-)

As you see, it's far from usual rotating cube etc. In fact, apart from OpenGL, this program is also an interactive presentation of some of my engine's (Sculpture Clay) GUI capabilities. It took me 8 days to write it. Downloaded more than 400 times.

  • Release date: may 2005
  • Platform: PC, Windows
  • Technology: C++, Sculpture Clay 1.0 engine
  • Download: 1.1 MB zip file
Comment it!
People said...
Add your comment:



Admin

Terrain Editor

Terrain Editor is a simple heightmap editor, written in C++ as university project. Along the way I learned some new technologies and concepts.


Terrain Editor uses DirectX 9, fixed pipeline, multitexturing (for detail texture), basic per-vertex lighting. Does simple picking to select the vertices that should be changed - casts ray and finds vertex which is closest to it. Verticies are stored in dynamic vertex buffer. It supports few terrain changing operations, like raising/lowering the terrain, painting height, smoothing and roughing it. Supports brushes with custom mask, and dynamic size.

It uses wxWidgets 2.8.11 for UI, HTML display etc., and apart from initial hurdles and integration with DX, I am pretty content with it. Btw, embedding .png picture into executable which would be on the fly converted to be used by wxWidgets... proved to be much more hardcore than I thought, so eventually I used plain old Windows resources (.rc).


If you encounter problems during execution, make sure you have newest DirectX runtime and Visual Studio Redist installed (on computer without Visual Studio).

Comment it!
People said...
Add your comment:



Admin

PhySimulation

Some collision detection and physics simulation done for convex polygons. Based on code from Olivier's Rebellion PolyColly. I've done it as part of my summer internship at InImages. It's not very high quality, sometimes objects move in odd directions, think of it in terms of "proof of concept".

There are quite many keyboard shortcuts, some are displayed on the screen, others you might discover through trial and error or by studying source code.

Comment it!
People said...
Add your comment:



Admin

Pathfinder

Simple implementation of A* path searching on map with varying costs, done as another uni project. You can change the map topology by clicking with mouse (there are 3 predefined maps loaded from files). You can benchmark pathfinding algorithm by pressing B with 1000 runs to see how fast it is (all my tests end in fraction of second).

OK instructions end here, there's a full keyboard cheatsheet right in the application. Thanks to using my home engine and nice A* explanations found on the net, coding this took me few days. Application has been extensively tested on many PC configurations and works fine. Source code included (LGPL).

Comment it!
People said...
Add your comment:



Admin

CarSimulation

Simple car physics simulation made as a yet another university project :-) you control the car. Environment is simple heightmap with texture on it. I used it as a testbed for new version of Sculpture Clay 2 (which at that time had some 3d support). Yeah, I know, car physics are horrible.

Comment it!
People said...
Add your comment:



Admin

BallSimulation

Simple simulation of multiple balls moving in a cylindrical environment made as a university project. Uses RK4 for integration. I implemented general sphere-wall and sphere-sphere collisions using sweep tests. Physics loop is fixed: updated 60 times a second using technique presented at gaffer.org.

Hide 2 comments
People said...
louisvuitton said  It is very good!
Koshmaar said  Thanks Luis! it was such a long time ago...
Btw, recently I did another project for university using some of the code from this one, and decided to show it off using Java Web Start technology - it's here, just click on the applet_test.html and it should start automatically. New program is much better than the previous (which as I noticed either doesn't work or runs very slowly), also there are sources included in src/ directory.
Add your comment:



Admin

Simple DB

Another university project, this time we had to implement in pairs a database in Java, using MySQL. My partner was Micha� Czaicki. Program had to connect with db at external server and allow the user to operate on tree of products and categories... you know, each category contains products, and each product has its name and price; also, categories may contain other categories etc. Fun fact: this project demanded from students some DB knowledge, and the first lecture about databases we would have next year :-) Despite it, everyone completed this task.

Our project also generates PDF files with summary of all the products and it shows the comparison charts of products stored in currently selected node. Note: since it's rather pointless to run this project by other people, it demands MySQL server and the needed libs are really heavy, I decided not to include it for downloading.

  • Release date: 17 december 2006
  • Platform: PC, OS that supports Java
  • Technology: Java 1.5, MySQL, Swing, Javadoc, IText, jFreeChart + Eclipse
Comment it!
People said...
Add your comment:



Admin

JnR Techdemo 1

Techdemo showcasing some of the features of Sculpture Clay 1 engine - in this case, mainly particle system. It contains references to Ulairi name, which was a name of team that long ago was trying to develop a game called Jump n RotN, currently abandoned. There's a problem with sound on 64 bit systems, it looks that FMOD's dll doesn't work on them. Btw, it looks much better when run than on screenshots :-) especially the fire IMHO is quite cool.

Comment it!
People said...
Add your comment:



Admin

Liero TURBO

Liero TURBO is my Total Conversion of the ever-famous, having cult like status Liero. I completely changed game physics, weapons and gameplay, also tweaked a little sounds and graphics. I have also created more than a dozen of new, fresh and very playable maps (included in the zip).

Comment it!
People said...
Add your comment:



Admin

Lord of the Rings RPG

This a pre alpha techdemo of FRS engine made by Rangers of the North, quite big team of amatours I was part of for over 4 years. It was great time, I met fantastic people who tought me loads of things (not only technical). Mostly, I was doing there 2d gfx, coding in Delphi flocking behaviour of animals, writing some articles and spamming forum. As for this techdemo, I coded virtually nothing. Now former RotN members changed name to Artifex Mundi and are continuing work on commercial version of FRS engine. Good luck, guys and gals :-)

Comment it!
People said...
Add your comment:



Admin

Game of Life

Anooooother university project. Application which implements Convay's Game of Life algorithm. You can interactively paint on the board with mouse LMB (white) / RMB (black) or you can choose one of several predefined interesting systems. You can change the size of board, generate noise / clear everything and step through the algorithm step by step, or simply let it run at full speed.

Full sources, documentation (polish) and UML diagram included. If you have a 64 bit system (like I do) then you will be unable to run this program since Turbo Pascal generates 16 bit executables. In that case, using DOSBox will do the trick.

Comment it!
People said...
Add your comment:



Admin
ADMIN
Last modified: 17.02.2012, 93 days ago
The nice thing about standards is that there are so many of them to choose from