I'd like to say thank you to a couple of people who helped me with this project.
Firstly Dan Hodgson, who supervised the project from the start to the end.
And also Chris Rook, for giving guidance and also acting as second marker for
This project is covered by an NDA (None Disclosure Agreement) with Sony therefor
it cannot be released to the public, however I am hoping to create a public
version which removes any implementation of PSSL and the PlayStation 4's
and instead replace it with GLSL (OpenGL's Shader Language).
Towards the end of my Computer Games Programming degree, I was required to create
an individual project. For this project I created an environment in
which graphical shaders were created for the PlayStation 4 without the
required skill set to write PSSL (PlayStation Shader Language) scripts.
To start with, research went into various different shader environments found online.
Due to the PSSL language being covered by an NDA, no environments were found online
which created PSSL shaders, however there were quite a few which used GLSL.
Next, the interface was made, which was done using WPF and C#. Two iterations of
this design was done, due to the first design not being to my own liking.
The second design created was then compared with the first design using a
survey to tell which design would be the preferred one, and the second
was preferred greatly.
After this, OpenGL was implemented into the program as previewing PSSL is
not possible on other platforms other than a PlayStation 4 and it
was decided that the shaders which were previewed would be in GLSL
and then exported into PSSL.
Once the view port was set up and models could be imported for previewing,
shader editing was then implemented using two main settings types on the left
of the program. The two types of settings were 'Basic' and 'Advanced'.
'Basic' settings gives options such as adding ripple effects,
giving a toon shader, changing basic lighting colour.
'Advanced' settings gives the option of writing in GLSL
straight into the editor with an error log implemented on the bottom
if there is any problems within the written code.
Once this was all done, a text box and two buttons was then added to
the top to give the shader created a name and to then export the
shader in either GLSL or PSSL. The reason to adding a button for
GLSL despite the application being aimed at PSSL was due to the
application already previewing in GLSL therefor it made sense to
just export that generated code also. The PSSL button however
converts the GLSL code into a format readable by the PlayStation 4
and any projects which have the functionality to load in PSSL shader files.
Overall I thought this project was a huge success, as shaders exported were
able to be used within the PlayStation 4 and using
user feedback through a survey, the application
itself looked to a professional standard. This
program is something I'd hopefully like to come
back to once I am able to use the PlayStation 4's once
again may it be through university through my masters or
through other means as I feel this program with a bit more work
could be used within a real life scenario to easily create
PlayStation 4 shaders to be used within games currently being
developed on the PlayStation 4.