10-second 3D Youtube Intro

In this assignment, you are tasked with creating a 10-second 3D Youtube intro. The scenario is someone is making a Youtube channel, and they have given your team the task of creating a short introduction. The idea is the intro would be exciting and help attract more viewers. Also, your client wants something a bit different for each video they show. Therefore you must have a parameter (or parameters) that you can change to create different variants of the intro. This parameter should default to random so that you get something different every time you run it.

This assignment is due Week-12, Friday 5PM, via GitLab.

This assignment may be done in groups of at most three students. To give you a bit of direction, I have listed a number of themes your video could follow. The themes are:

  • Water and waves
  • Gears
  • Falling fruit
  • Breaking mirror
  • Disco ball(s)
  • Mountain range
  • Trees
  • Cloth material cloak
  • Volcano
  • Paper planes
  • Custom

In the case that you choose a custom theme, you must state the theme explicitly in your README.md.

This project involves implementing each of the basic requirements, along with a number of extension features. These are:

Basic requirements:

  1. Parameters which change properties of the video each time you run the program.
  2. A theme stated in README.md, and the videos clearly demonstrate that theme.
  3. Please also add to the root directory of the repo 3 mp4 videos of your intro, each with different parameter settings. These should be each ~10 seconds long. Each must be al most 10MiB long. This will fit without too much trouble within your repo.

Extension features:

  1. Select a number of extension features (see below for examples) and implement them. For higher marks, more than one extension feature needs to be implemented.

Constraints:

  • Must be implemented using OpenGL and Java (JOGL)
  • Must be in 3D.
  • Must include instructions (README.md) for running on the School’s lab computers
  • Must be self contained and not use any external libraries (outside of JOGL), although you may include images for textures into your repo.
  • Make certain the statementoforiginality.md is completed, including the statement of contribution and references sections.
  • Make certain your repo is private.
  • Do not rename the repo.

To get started have one member of your team fork the starting repo: comp4610-assign2 (you will need to do this even if you do not plan on using the supplied template.)

Add the other members of your team as a master to the repo.

Template

We provide a very basic template for this assignment. We gain access to your repo when you fork this project, so you must fork it even if you do not intend to use it. If needed you can simply remove the template java files. You may also want to use your Lab-3, or Lab-4 solutions as a starting point for your assignment.

Marking

The assignment will be marked out of 30 with the following 4 parts:

  • Basic requirements 10
  • Extension feature 10
  • Overall quality 5
  • Individual report 5

To submit make certain that all your code is committed and pushed to the cecs gitlab server before the due date/time. Although this is an group assignment it is important that each member of the team be given and complete some coding for the assignment. This will be assessed according to the statement of contribution.

The assignment will be collected via downloading your repo some on the due date/time, which is 5PM, Friday Week 12.

Marking Criteria

To gain a mark of over 50% students are required to:

  • complete the statement of originality
  • complete the statement of contribution
  • complete the references which includes references to other peoples work/ideas/code you have used (add this to the statementoforiginality.md file)

To make this clear, students who do not complete all three parts of the the statement of originality will have the mark for this assignment be at most 15/30.

Once this is checked off the marking rubric given below will be used.

  0-4 5-6 7-8 9-10
Basic Requirements Theme has not clearly been implemented, or submission lacks one or more of the basic requirements. The videos demonstrate the proposed theme. The videos cearly demonstrate the proposed theme. Parameters make only minor differences to the video generation. The videos clearly demonstrate the proposed theme at a high quality. Parameters produce non-trivial variations to the video generation.
Extension features Extension feature(s) have been attempted but was of low to moderate difficulty or not implemented well. Visually interesting extension features were achieved, of moderate to high difficulty and implemented well. Includes some use of GLSL shaders. Advanced extension features of significant difficultly were implemented to a high level. Includes some use of GLSL shaders. Advanced extension features, of significant difficulty, were implemented exceedingly well, producing a visual quality of what you may see at the beginning of a movie. Includes some use of GLSL shaders.
  0-2 3 4 5
Overall quality Little attention has been given to code quality. Code is nicely formatted and appropriately commented. Implementation is robust and the design is good. Software design outstanding in terms of simplicity, efficiency, coupling, cohesion, information hiding.
Report (4610) A feature has been described but lacks analysis of the challenges involved. A feature has been clearly described, with an analysis of the challenges involved. A feature has been clearly described, with an analysis of the challenges involved and some proposed improvements. A feature has been clearly described, with a thorough analysis of the challenges involved and insightful proposed improvements.
Report (6461) Differences between the approaches have been poorly made, or the explanation lacks clarity. Differences between the approaches have been described, but supporting evidence is lacking. Differences between the approaches have been analysed and supported by evidence with some attempt at implementing and assessing an alternative approach. Differences between the approaches have been thoroughly analysed and supported by evidence, including implementation, testing and analysis of the alternative approach.

Contribution Scaling

  • Each participant should have contributed at least one key feature to the project, and should be able to, if required, explain the code that implements this feature.
  • In cases where a participant’s contribution is particularly low, we may scale their mark on the first three criteria to more accurately reflect their contribution.

Report

A report for each team member should be included in the submitted git repo. This report has a maximum of 2 content pages. A single additional page containing only references, figures, or images is allowed.

Each member of the team must produce an individual report. The contents of the report are different for COMP4610 and COMP6461 students.

COMP4610

  • Describe a feature you implemented.
  • What were the key challenges in implementing this feature?
  • How did you overcome those challenges?
  • If you were to redo this feature from scratch, is there anything you would have done differently or improvements you would make?

COMP6461

  • Select a feature you implemented.
  • Discuss and compare two different approaches to implementing this feature.
  • What are the pros and cons of each approach in terms of these three criteria:
    • computational efficiency,
    • aesthetics,
    • implication difficulty.

For full marks, COMP6410 students will be expected to have prototyped and benchmarked two different approaches to their given feature. For example, if shadows were implemented, you might compare shadow maps, vs shadow volumes, providing screenshots of the differences, and some analysis on the computational performance differences between the approaches.

Extension Features

A good example of an extension feature is one that we have not implemented in the labs (but may have talked about during class). Extensions features will likely require self-research, reading papers, etc. These features should be graphical in nature (e.g. lighting/rendering, geometry/modelling, animation, etc.)

I’ve made a collection of some ideas here and, in some cases, provided links to get you started. This list is a guide only and is not exhaustive.

Not too hard

Harder

Very Hard

Probably Impossible (do not attempt)

FAQ / Clarifications

May a team include both COMP4610 and COMP6461 members?

Yes.

Does this need to be done in 3D?

Yes.

Can I build a raytracer?

The spec requires you to use OpenGL for this project. Building a software raytracer and rendering the results to the screen via a quad in OpenGL would meet this requirement.

Do I need to use shaders?

For higher marks, you will need to make use of GLSL shaders (see marking criteria).

Does my program need to run in real-time?

No, since this is an intro video, it can be ‘rendered’ offline. Also, we don’t want this project to be unfair to people with lower-end GPUs. That being said, implementations that are uncessarly inefficient would contribute to a lower quality mark.

How should I create a video?

I recommend using OBS. If your program does not run in real-time, you could use ffmpeg.

Why does CMS mention a plan file being required two weeks early?

This requirement was from an old version of the assignment. The plan has been replaced with a report and is due alongside the other components of the assignment on week 12.

bars search times arrow-up