3D tagged posts

Dream Hills – PostFX

The term Post Process is used in the video/film business for image quality improvement. Also, post-processing is commonly used in 3D rendering, especially for video games. Instead of rendering 3D objects directly to the display, the scene is first rendered to a buffer. Pixel Shaders and optionally Vertex Shaders are then used to apply post-processing filters to the image buffer before displaying it to the screen. Some PostFX also require multiple-passes, gamma inputs, vertex manipulation and depth buffer access.

Read More

Dream Hills – Particle System

A Particle System is a technique used in Game Physics, Motion Graphics and Computer Graphics to simulate phenomena very hard to reproduce with conventional rendering techniques.
On Dream Hills we have lots of this kind of phenomena and effects like fountains, water splashes, waterfalls, explosions, smoke, dust, electric sparks and more, so we decide to implement our own Particle System and was my responsibility to do it.

Read More

Dream Hills

On October 2015 I started a Master’s Degree in Creation of Video Games at Barcelona School of Management – Universitat Pompeu Fabra. During the first months, along the artists of the Master, we learned everything about Game Design and Game Production. On January we created a group of 3 artists and 5 programmers and started to design our game, also the artists started learning 3D modeling, texturing, animation, UI design and art direction, by the other side, the programmers learned graphics programming, physics, artificial intelligence and audio programming. But let’s talk about the game…

Read More

WebGL Engine

As my Degree Final Project, I have decided to develop a WebGL Engine and study what are the differences between Forward and Deferred Rendering under the supervision of Javi Agenjo, Graphics professor and researcher of the Universitat Pompeu Fabra, here at Barcelona. I decided work on this project because WebGL could be useful in the future to render 2D or 3D in a Web, creating a new engine will refresh my knowledge about them and how they work, and the most important reason is learn to code in Javascript and how Deferred Rendering works using WebGL, because as a good engineer I love to learn new things on every project I work.

Read More

Procedural Terrain Generation

The first thing we should ask ourselves is: What is the procedural content generation and what we can do with it on games? PCG is the automatic or computer-assisted generation of game content such as levels, landscapes, items, rules, quests etc. This time we are generating the terrain for a posible sandbox game using voxels, like Minecraft. I have decided to use voxels because they are easy to manage and will allow me to do whatever I want with the terrain (cliffs, mountains, canyons, caves, corridors between caves, etc)

Read More

Puzzle Bobble (First Unity Project)

In order to learn something useful to have more opportunities to work in the game industry, I have decided to start doing projects with Unity, so here’s the first.

A small imitation of the famous Puzzle Bobble obviously is not perfect, not as well finished as the original, but to start learning Unity3D and gain confidence, has been pretty good.

Read More

Ray Tracing

In computer graphics, Ray Tracing is an algorithm for generating 3D images by tracing the path of light through pixels in an image plane and simulating the effects of its encounters with virtual objects, like reflections, refractions, shadows. The algorithm produce a very high degree of visual realism.

Read More

Game Engine

This graphics engine is the biggest project I’ve developed on graphical programming. Further on, I will try to explain more extensively the structure used for development, the use of each part of the structure and why I chose that structure and not another.

For now, here’s a video demonstration.

Read More

Octree + Ray Collision

Nowadays in applications that work with 3D graphical environments require monitoring the collision between meshes with lots of triangles, so that the computational cost of checking all triangles of both meshes would be too high.

To solve this problem, it’s posible to divide the triangles of the mesh in areas, so we will have a smaller amount of triangles to check for each sector. This creates a data structure in a tree, in which the father wraps to subsectors children. This distribution of data also can be applied in both 2D (Quadtree) and 3D (Octree).

Read More

QuickHull 3D

At the Computational Geometry course I have implemented the Quickhull algorithm for its application in 3D, following the paper “Barber, C. B., Dobkin, D. P., & Huhdanpaa, H. T. (1996). The Quickhull algorithm for convex hulls. ACM Trans. on Mathematical Software, 22(4), 469—483”. And following the example of this java applet developed by UNSW School of Computer Science and Engineering.

Read More