Design and implement a raytracer

Assignment Help Software Engineering
Reference no: EM133698275

Professional Software Development

Programming Assignment 1- Implement a Zork-style text adventure

Part 1: The hero's journey

For this part of the assessment, you will:
- Generate a UML diagram describing your solution
- Make a "map" containing at least 10 rooms
The provided code, purely as an example, has a map with three rooms. You may use those rooms as-is or delete them, but your final game should consist of a minimum of 10 rooms.
- Implement "look" functionality
In ZOOrkEngine.cpp, there is a method handleLookCommand(arguments) which, at this point, just prints out that the functionality is unsupported when a user attempts to look. Looking at an object should print its description; looking without a specific target should print the description of the current room.
- Implement take/drop and an inventory system
Also in ZOOrkEngine.cpp, there are methods handleTakeCommand(arguments) and handleDropCommand(arguments) that should enable a user to move an Item from the Room's inventory to the Player's inventory and vice versa. Implementing this functionality will also involve changes to, at a minimum, Player.h/Player.cpp and Room.h/Room.cpp.

Part 2: Choose your own adventure
For this part of the assessment, you will extend the functionality of ZOOrk to enable more interesting gameplay. You may choose to extend the game in any way you see fit - as long as you document it in your reflection document, see Part 3 below - but if you're stuck for ideas you could try one or more of the following:
- Add one or more new commands to the ZOOrkEngine enabling the player to perform new and exciting actions.
- Add other types of Characters that the player can interact with (possibly through new ZOOrkEngine commands...).
- Add a class Door, deriving publicly from Passage, that requires the player to possess a specific Item to open it.
- Add a system of status effects/tags such that the user can only perform certain tasks or access certain locationswhen they possess a certain characteristic (i.e. "huge", "tiny", "flying", etc.)

Part 3: There and back again
You will submit, in addition to a ZIP file containing your code files, a short reflection document. This document should comment upon:
- What AI tool or tools you employed,
- What prompts you provided to those tools,
- How and where those tools provided helpful suggestions,
- How and where those tools provided unhelpful suggestions,
- What, if anything, you implemented to satisfy Part 2, and
- What you learned from this process.

Programming Assignment 2 - Design and implement a raytracer

Part 1: A clear vision
For this part of the assessment, you will:
- Generate a UML diagram describing your solution (20 marks)
- ImplementSphere and (infinite) Plane Objects (10 marks; 5 marks each)
Implement the code for determining whether a Ray hits a Sphere or an infinite Plane. (A Plane has no bounds, unlike, say, a Quadrilateral or a Triangle. These are more complicated to implement and would make sense as extensions for Part 2.)
- Implement Reflective and PureDiffuse Materials (10 marks; 5 marks each)
An Object (for example, a Sphere or a Plane) will have a material that determines the Color3 of a Ray that hits it. Reflective (mirror-like) Materials will simply generate a new Ray; PureDiffuse Materials will simply stop the ray and assign a Color3. (Actually Diffuse materials are a much harder case, they integrate an entire hemisphere of Rays to determine the color of the surface. This would make sense as an extension for Part 2.)
- Add antialiasing
The image on the left demonstrates "aliasing", also known as "jaggies". The image on the right is a bit blurrier, but smoother. This is the effect of antialiasing. Add the option to turn antialiasing on or off in your raytracer.

Part 2: Tracing your path
For this part of the assessment, you will extend the functionality of your raytracer to enable more interesting images, more flexibility, or better performance. You may choose to extend the game in any way you see fit - as long as you document it in your reflection document, see Part 3 below - but if you're stuck for ideas you could try one or more of the following:
- Implement bounding volumes to increase performance. (Axis-aligned bounding boxes, or AABBs, would be a good place to start.)
- Enable Iterating over pixels in an image, or rays in a pixel.
- Enable image textures on Objects.
- Enable procedural textures on Objects.
- Enable area lights.
- Enable "real" diffuse surfaces.
- Enable "glossy" surfaces.
- Enable "refractive" surfaces.

Part 3: Ray reflection
You will submit, in addition to a ZIP file containing your code files, a short reflection document. This document should comment upon:
- What AI tool or tools you employed,
- What prompts you provided to those tools,
- How and where those tools provided helpful suggestions,
- How and where those tools provided unhelpful suggestions,
- What, if anything, you implemented to satisfy Part 2, and
- What you learned from this process.

Reference no: EM133698275

Questions Cloud

What evidence would be needed to show compliance : What the question means? What evidence would be needed to show compliance? Whether it would be easy or difficult to achieve compliance and why?
Painless lump palpated at left vaginal opening : Appropriate hair distribution, No lesions, Small, painless lump palpated at left vaginal opening. Mild swelling noted.
Discuss how difficult and costly completing the assessment : Discuss how difficult and costly completing this assessment might be for the small medical practice described in this case.
Explain how the ssl and tls work : Read more about SSL and TLS and write a report explaining how they work. Use the following link as a starting point.
Design and implement a raytracer : CSE3PSD Professional Software Development, La Trobe University Implement a Zork-style text adventure and Design and implement a raytracer
Identify four aspects of end of life care : Identify four aspects of end of life care e.g., eligibility criteria, services provided, types of medical conditions, reimbursement models,
What have researchers learned about the negative impacts : What have researchers learned about the negative impacts of excessive social media use among teenagers, and ways to mitigate these negative impacts?
Running water at designated hand-washing sink : Handwashing prior to changing a nappy - Wet hands with running water at a designated hand-washing sink, Dry hands effectively with new paper towel or hand dryer
What should be done to prevent a recurrence : Select a major hacking incident from the past five years. Briefly describe the case: What was done or not done? What should be done to prevent a recurrence?

Reviews

Write a Review

Software Engineering Questions & Answers

  Research report on software design

Write a Research Report on software design and answer diffrent type of questions related to design. Report contain diffrent basic questions related to software design.

  A case study in c to java conversion and extensibility

A Case Study in C to Java Conversion and Extensibility

  Create a structural model

Structural modeling is a different view of the same system that you analyzed from a functional perspective. This model shows how data is organized within the system.

  Write an report on a significant software security

Write an report on a significant software security

  Development of a small software system

Analysis, design and development of a small software system.

  Systems analysis and design requirements

Systems Analysis and Design requirements

  Create a complete limited entry decision table

Create a complete limited entry decision table

  Explain flow boundaries map

Explain flow boundaries map the dfd into a software architecture using transform mapping.

  Frame diagrams

Prepare a frame diagram for the software systems.

  Identified systems and elements of the sap system

Identify computing devices, which could be used to support Your Improved Process

  Design a wireframe prototype

Design a wireframe prototype to meet the needs of the personas and requirements.

  Explain the characteristics of visual studio 2005

Explain the characteristics of Visual Studio 2005.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd