Richard Bamford


Second year Computer Science student at the University of Hull. Interested in maths, physics and graphics.

Blog posts

Programming Adventures 2 - Unity3D Translation

Programming Adventures 2 - Unity3D Translate When moving objects using gameObject.transform.translate(x,y,z), its direction is based on the object's local transformation.That means that a square object rotated 90 degrees right will translate +Y when translated by (10, 0, 0).This bug happens when trying to translate objects using world space vectors. SolutionThe solution is to use gameObject.transf… Read more →

Programming Tricks 1 - PHP and JS/CSS

Programming Tricks 1PHPWhen creating PHP scripts, there is a funny error that if there are spaces before the first Read more →

Recovery programming

Sorry!Hello, sorry I haven't posted in a long while I have been super busy with some personal things. Here are some things I have made over the past couple of weeks while getting back on my feet!LANChatWhile learning how to make LANHelper I made another program where you can chat to people on your LAN and send files to them. From making this i learned how to create a udp networking system using he… Read more →

Project 6: Marching cubes algorithm and metaballs.

The marching cubes algorithm is a way of creating polygons from volumes of data. The data it works on is varied such as 1 / R^2 (the one used to produce metaballs) and a noise function like perlin noise.My implementation of marching cubes in a nutshell is initially the scene is split into a 3d grid of voxels, then at the corners and center of each voxel an isovalue is calculated (to form the isosu… Read more →

University work: The Column.

This assignment for 3d graphics and simulation module involves rendering a scene from scratch using opengl and simulating physics with collisions between different shapes.Here's what I have so far:I still have a bunch of work to do with the portals (you can see that they disappear and reappear), the collision responses between the objects (it is kind of `glitchy` and I want to implement proper pre… Read more →

Graphics Work

A quick update on what I've been working on recently.For one of my modules Simulations and 3D Graphics, we were set a task to learn lighting and materials. So far I have implemented a single light, using ADS and blinn-phong (again).The camera can rotate, move forward/backward. The armadillo can be rotated on it's pedestal and the whole scene can be rotated. Read more →

Project 5: Stanford dragon rendering

This dragon is one of the many models which the Stanford University Computer Graphics Laboratory scanned. More info http://graphics.stanford.edu/data/3Dscanrep/. I used this to practice for an upcoming module, it is made in OpenTK and uses OpenGL 4.5. Work for this included:Loading vertex and normal data from .OBJ.Parsing material file for Blinn-Phong attributes.Blinn-Phong glsl shaders.Setting mo… Read more →

Project 4: Ray casting with a 2d graphics library.

Implementing this using one of my favorite frameworks (https://love2d.org/) in Lua was a lot of fun!This is heavily inspired by Wolfenstein 3D.It involved simple trigonometry, calculating ray/shape intersections, figuring out how to map textures and lighting effects. A problem I encountered was a fisheye lens effect, because for each ray projected into the world, I would map the intersection dista… Read more →

Project 3: Grass Sim

Overview One of the main problems with rendering lots of primitives, is each one requires its own draw call/position definition.A solution to this is instanced rendering, where you give opengl a set of vertices and tell it to render it X amount of times. Since it computes everything internally from then on the cost of it is near 0.Instanced rendering does this (pseudo code):for 0, X doSet Instance… Read more →