Limited Offer Get 25% off — use code BESTW25
No AI No Plagiarism On-Time Delivery Free Revisions
Claim Now

COMP 5812M: Rendering 2021-2022 ASSIGNMENT 1: OpenGL Software Pipeline [50 marks / c. 30-50 working hours] You will be provided with a basic OpenGL renderer that reads in a subset of the standard .obj file format along w

 

COMP 5812M: Rendering 2021-2022

ASSIGNMENT 1: OpenGL Software Pipeline [50 marks / c. 30-50 working hours]

You will be provided with a basic OpenGL renderer that reads in a subset of the standard .obj file format along with a .ppm file in ASCII format as a texture. This renderer is built on Qt, and compiles correctly against Qt 5.13.0 on feng-linux with the following commands:

module add qt/5.13.0
qmake -project QT+=opengl
qmake
make

It can be launched with:

> ./FakeGLRenderWindowRelease ../path_to/filename ../path_to/texturename

Windows and OSX instructions are available in the readme.txt file provided.

Several textures and object files are also provided, but with no guarantee that all of them will render well – they may have holes, bad texture coordinates, etc. Most of the smaller ones are fine.

In the application, there are two main widgets with a number of secondary controls affecting the render process. On the left, there is a conventional OpenGL renderer which uses the system library. On the right, there is a window which displays an image which you can modify in your code.
You should only need to edit the code in FakeGL.h/FakeGL.cpp, which have had nearly all the necessary code stripped out.
You may also wish to modify FakeGLRenderWidget::paintFakeGL() to change the sequence of calls or parameters for testing purposes.

If you implement the standard pipeline correctly, the two widgets should show roughly the same image. One of the .obj files (triangle_groundplane.obj) should have the same coordinates as the exercise we have already handed out.

It is recommended that you implement in the following order:
I Decide on state variables that you need to store in each stage
II Write a stream output function to dump the entire state of the library
III Decide how to trigger later stages – we will discuss this in the lab session
IV Implement ClearColor() and Clear()
V Implement TransformVertex() without transformations
VI Implement RasterisePoint()
VII Implement ProcessFragment()
VIII Increase the point size so you can see the points
IX Modify ProcessFragment() to set pixel colour
X Add the matrix transformations to TransformVertex()
XI Implement the Depth Test (easiest with large points, not triangles)
XII Implement RasteriseLineSegment()
XIII Add depth interpolation to RasteriseTriangle() (which is provided)
XIV Implement lighting calculations in TransformVertex()
XV Implement textures
XVI Implement Phong shading

Each of the stages listed is worth approximately 2-3 marks, although some are worth more or less.

Since you have been provided with a user interface, file input & support code, no other libraries may be used: any additional code you submit must be written by you personally.

The code MUST run on the University’s Linux system – i.e. on feng-linux.leeds.ac.uk or feng-linux.leeds.ac.uk/gpu. You may implement on your own machine, but it will be tested on ours.

PENALTIES:
Poorly structured or badly commented code may be penalised by up to 25% of the marks available.
Poorly formatted output files may also be penalised by up to a further 25% of the marks available.
Code without a readme or makefile may be penalised by up to 10% of the marks available.

Code that does not compile properly will be assigned a mark of 0, but I will usually give the student one chance to correct this.

DUE DATE: Friday, November 25th, 10:00 am

CS计算机代考程序代写 # Informatics 2C Computer Systems – Coursework 2

# Informatics 2C Computer Systems – Coursework 2

# DEADLINE 26/11/21 4PM – No Extensions

Coursework 2, like Coursework 1, uses GitHub Classroom. The
detailed instructions for this coursework will be given directly on GitHub.

## 1) Open GitHub Classroom

Open the GitHub Classroom lab URL:
[https://classroom.github.com/a/eQCIWqTu](https://classroom.github.com/a/eQCIWqTu).

## 2) Select Your Student ID

**If you have already registered for CW1, this step can be skipped.**

Choose your University student number from the list of identifiers. If there
has been a mistake in selecting the identifiers, let us know ASAP.

## 3) Inspect the Coursework Repository

Once you have selected your identifier from the list, GitHub classrooms will
create a new repository for you.

You can now navigate to your repository which lists the files needed in this coursework
and shows a README.md file that provides detailed instructions for this coursework.

Plagiarism Free Assignment Help

Expert Help With This Assignment — On Your Terms

Native UK, USA & Australia writers Deadline from 3 hours 100% Plagiarism-Free — Turnitin included Unlimited free revisions Free to submit — compare quotes