From d5bdf814bd677cde7998c180f5dac108cea5a514 Mon Sep 17 00:00:00 2001 From: ScorpionX90 Date: Wed, 17 Sep 2025 10:13:40 +0200 Subject: [PATCH] Here be thy transparent triangles --- gloom-rs/report/exercise2.md | 7 +++ .../report/images/transparent_triangles.png | Bin 0 -> 26480 bytes gloom-rs/shaders/simple.frag | 2 - gloom-rs/src/main.rs | 41 ++++++++++-------- 4 files changed, 29 insertions(+), 21 deletions(-) create mode 100644 gloom-rs/report/images/transparent_triangles.png diff --git a/gloom-rs/report/exercise2.md b/gloom-rs/report/exercise2.md index ef34e8f..2e904db 100644 --- a/gloom-rs/report/exercise2.md +++ b/gloom-rs/report/exercise2.md @@ -33,3 +33,10 @@ This task was already implemented as part of exercise 1. But for ease of access OpenGL does a simple interpolation between the vertex colors, and assigns a color to a pixel during shading based on a weighted blend of the vertex colors based on how close the location of a pixel is to the vertices of the fragment. All weights should add up to 1, resulting in a varying mix of all the vertex colors at any given point in the fragment. In other words it does a simple linear interpolation. +## Task 2) + +# a) Transparent triangles + +![](./images/transparent_triangles.png) + +Here we have drawn three partially overlapping triangles drawn in the order "red - green - blue" with red having the highest z-index (furthest back), followed by green and finally blue. All triangles are rendered with alpha = 0.4 diff --git a/gloom-rs/report/images/transparent_triangles.png b/gloom-rs/report/images/transparent_triangles.png new file mode 100644 index 0000000000000000000000000000000000000000..932d14af56d35c10601d77ca4803d6f76bd2d3d2 GIT binary patch literal 26480 zcmeAS@N?(olHy`uVBq!ia0y~y;0$13U}xrFV_;y|^|0eV0|NtNage(c!@6@aFBupZ zSkfJR9T^xl_H+M9WMyDr;4JWnEM{QfI}E~%$MaXDFfgREdb&7C}atNu^n_6MPY0KZwHW5z}zE30gPY<0|UdxQRSl{GnxoSv&U#j zz%ZH!MiasCOa!Zzy`Emg%)s#Gnt}h*UsqpVn8wY(@Zu(A@9ekOq;vcX4Jp&pe(M=NXJ=q|(~3(=1E{S8Hlagx0TY

=V|L=aQ%9@k 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 m0ul}kqX_~M5XcE)(KhBc6|