100% satisfaction guarantee Immediately available after payment Both online and in PDF No strings attached 4.2 TrustPilot
logo-home
Other

COS Assignment 2 solution

Rating
3,0
(2)
Sold
9
Pages
9
Uploaded on
29-07-2023
Written in
2022/2023

COS Assignment 2 solution: Continuation of Assignment one, Check my uploaded Assignment one to continue with this assignment 2 OR just use assignment 2 as it is You are required to make the farm created in the previous project (assignment 1) more realistic by adding lighting and material properties. You are required to create two different scenes. The first is a day scene in which you define the sun as a directional light whose colour is white in all its components and that has constant attenuation. The second is a night scene for which you have to add three garden lights in open spaces. Define each “garden” light as a positional light. The night scene should also include a moon and some stars. Do not use lights for any of these. Manipulate the emissivity of the respective materials to obtain the desired lighting effect. Your program should retain all the functionality of the previous project. Add a keyboard callback that will allow the user to switch between scenes. Use <D> to switch to day and <N> to switch to night. This should work whether "Caps Lock" is enabled or not. You are required to apply texture mapping to the entire barn.

Show more Read less











Whoops! We can’t load your doc right now. Try again or contact support.

Document information

Uploaded on
July 29, 2023
Number of pages
9
Written in
2022/2023
Type
Other
Person
Unknown

Subjects

Content preview

COS3712 2023 ASSIGNMENT 2
(with the source code you need & link to the zipped folder)
Crystal Indigo!
Crystal Indigo!
Providing all solutions you need anytime
+27 76 626 8187




***Copy and run the code, open with the web browser and see the results***
*** There is a link to the source code at the end of this discussion***
if there is a program that is not running, please contact


Note: do not submit as pdf and change the code where necessary

,//Output when run

,<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Simple Village</title>
<style>
body { margin: 0; }
canvas { display: block; }
#controls {
position: absolute;
top: 10px;
left: 10px;
z-index: 1;
}
</style>
</head>
<body>
<div id="controls">
<button id="toggleRotation">Toggle Rotation</button>
<button id="toggleDirection">Toggle Rotation Direction</button>
<input type="range" id="rotationSpeed" min="0.1" max="2" step="0.1"
value="1">
<button id="zoomIn">Zoom In</button>
<button id="zoomOut">Zoom Out</button>
</div>
<!-- the JavaScripts -->
<script type="text/javascript" src="./scripts/three.min.js"></script>
<script type="text/javascript" src="./scripts/three.js"></script>
<script type="text/javascript" src="./scripts/texture.data.js"></script>
<script type="text/javascript" src="./scripts/script.js"></script>
</body>
</html>




/* style.css */

body {
margin: 0;
overflow: hidden;
}
canvas {
display: block;
}

, // script.js
window.addEventListener('DOMContentLoaded', init);

let scene, camera, renderer;
let rotationToggle = false;
let rotationDirection = 1;
let rotationSpeed = 1;
let zoomLevel = 1;
const gardenLightColor = 0xffffee; // Color for garden lights (adjust as
needed)
const gardenLightIntensity = 15; // Intensity of the garden lights (adjust
as needed)

function init() {
scene = new THREE.Scene();

camera = new THREE.PerspectiveCamera(75, window.innerWidth /
window.innerHeight, 0.1, 1000);
// Set the initial position of the camera.
camera.position.set(0, 0, 400);
camera.lookAt(scene.position);

renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.setSize(window.innerWidth, window.innerHeight);
renderer.setClearColor(0x87ceeb);
document.body.appendChild(renderer.domElement);

// Enable shadows.
renderer.shadowMap.enabled = true;
renderer.shadowMap.type = THREE.PCFSoftShadowMap;

createVillage();

animate();
}




function createVillage() {
var sun = new THREE.DirectionalLight(0xffffff, 1);
sun.position.set(50, -50, 50);
sun.castShadow = true;
sun.shadow.mapSize.width = 1024;
sun.shadow.mapSize.height = 1024;
sun.shadow.radius = 20;
scene.add(sun);

// Define three garden lights as positional lights for the night scene
// var gardenLight1 = new THREE.PointLight(0xffb400, 15);
// gardenLight1.position.set(0, -0.5, 0);
// gardenLight1.castShadow = true;

Reviews from verified buyers

Showing all 2 reviews
2 year ago

2 year ago

3,0

2 reviews

5
1
4
0
3
0
2
0
1
1
Trustworthy reviews on Stuvia

All reviews are made by real Stuvia users after verified purchases.

Get to know the seller

Seller avatar
Reputation scores are based on the amount of documents a seller has sold for a fee and the reviews they have received for those documents. There are three levels: Bronze, Silver and Gold. The better the reputation, the more your can rely on the quality of the sellers work.
CrystalIndigo University of South Africa (Unisa)
View profile
Follow You need to be logged in order to follow users or courses
Sold
486
Member since
5 year
Number of followers
226
Documents
73
Last sold
1 month ago
CrystalIndigo Solutions

providing all solutions to all computer science modules

4,1

51 reviews

5
27
4
13
3
6
2
1
1
4

Recently viewed by you

Why students choose Stuvia

Created by fellow students, verified by reviews

Quality you can trust: written by students who passed their exams and reviewed by others who've used these notes.

Didn't get what you expected? Choose another document

No worries! You can immediately select a different document that better matches what you need.

Pay how you prefer, start learning right away

No subscription, no commitments. Pay the way you're used to via credit card or EFT and download your PDF document instantly.

Student with book image

“Bought, downloaded, and aced it. It really can be that simple.”

Alisha Student

Frequently asked questions