Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Office Holiday

Epic Games' offices will be on holiday from June 22nd to July 7th. During this period support will be limited. Our offices will reopen on Monday, July 8th. 

PS1 Vertex Distortion / Quantization Material?

How can I make my models or model materials have that weird distortion that old PlayStation 1 games had with the vertex distortion/shaky-ness or what some would call it quantization? I have seen the marketplace item called Oldskooler but I don't have the money for it and don't want the other effects that come with it (also, I'm not sure if it will work well with my game graphics, I just want to experiment with the graphics, maybe I won't like it and remove it), I just want the distortion effect. Also, there is a PC game that got that weird effect too, Unreal Tournament GOTY 1999 had it too with the character models, but not quite like PS1 games.

Here's an example comparison of a PS1 game with and without distortion due to lack of z-buffer:


Product Version: UE 4.19
more ▼

asked Jul 17 '18 at 03:23 PM in Rendering

avatar image

143 16 26 129

avatar image tapirtoon Jan 23 '19 at 08:28 PM

someone actually made a post process material for this. Here you go: https://www.youtube.com/watch?v=V53WhPBXpW0

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

The reason it was called quantization is because that is literally what was happening. Vertex positions were being passed to the rasterization hardware as integers instead of as floating points so the coordinates would "snap" into place. It also quantized based on screen resolution. You can do the same thing with a vertex shader but simply rounding your vertex positions to the nearest "pixel." Of course, we can control what this made up screen resolution is so you can simulate an old 320x240 screen even if your real resolution is 1920x1080.

I don't know what your familiarity is with creating materials but you can use the world position offset to adjust the vertex position. The pseudocode of what you want to do is

  1. Get post-projection vertex position

  2. Divide by vertex.w component to remove projection warping

  3. Round x and y of vertex to nearest "virtual pixel" (floor(vertex * dim) / dim)

  4. Multiply by the vertex w component to reapply warping

  5. Get difference between quantized and non-quantized vertex and set it to world position offset in material

Hopefully that makes sense. I don't know if that is enough to get you where you want to be.

more ▼

answered Jul 17 '18 at 07:05 PM

Brian Johnstone (suspended)
(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question