美文网首页
讲解:COMP330、3D modelling、Java/c++

讲解:COMP330、3D modelling、Java/c++

作者: bingernai | 来源:发表于2020-01-10 12:53 被阅读0次

    COMP330 Assignment 3ObjectivesThis assignment covers the following topics: 3D modelling with triangular meshes 3D Transformations Perspective and Orthogonal cameras Illumination and shadingo Flat shadingo Smooth shading Texturing Transparency Screen-space EffectsYour task is to build a simple 3D world using height-mapped terrain, and implement a playerthat moves around in the world, controlled using the arrow or WASD keys. You then havethe option of improving this world by implementing a variety of features.FrameworkA basic framework for the assignment is available via GitHub classroom:https://classroom.github.com/a/qpKm8fZcThis includes: code for loading level files from JSON in main.js code for loading textures from PNGs in texture.js the glMatrix library for 3D vectors and matrices a selection of free textures from OpenGameArtLevel filesThe assignment framework includes a class that loads a level definition from a JSON file.This file includes the following data:level.json – an example level{ heightmap”: { width: 10, depth: 10, height: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 1, 2, 3, 2, 1, 0, 0, 0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] } player: { position”: [1,1], heading”: [1,0] } trees: [ 3, 5, 5.5, 8.2 ]}This defines height map, consisting of a 10x10 grid of points with different heights, and aplayer at position (1,1) on the map, initially facing in the X direction (1,0). There are trees atpositions (3,5) and (5,8).A simple framework has been provided to read these files into Javascript objects. Yourassignment should support this basic level format. You can extend the file format to includeother features you include in your world (e.g. other objects in the world, positionable lights,etc).You should provide a set of level files with your assignment submission which show off thedifferent features of your game. Only one level is necessary, but if you have different modes(e.g. day and night time) you may want to provide different levels to demonstrate each.Game featuresYour mark will be based on the features you implement, from the list below. Each featurehas a mark value attached. Completing more than 100% worth of features will not earnadditional marks.TerrainHeight map modelling: 20%Use the height-map data provided to generate a 3D mesh. The mesh should consist of widthby depth points (for the values specified in the level file) spaced in a grid in the x/z axes. They-coordinate of each point is given by the corresponding value in the height array. Thesepoints should be joined into a mesh of triangles. So, a 20 by 20 height map will have 19x19squares each represented with two triangles, as shown below.Trees: 5%Create a simple 3D model of a ‘tree’ (or any other object you like: a rock, a streetlamp, aTARDIS, a beachball, …). Place instances of this object sitting on the terrain at thecoordinates given in the JSON file. (Note that these coordinates are not necessarilyintegers.)Texturing: 10%An appropriate seamless ground texture should be applied to the terrain. One exampletexture has been provided in the framework.Note: Use of third-party images is allowed provided that you have a license to use them(e.g. they are under Creative Commons). Cite all third-part assets used at the end of yourdesign report. Use of unlicensed images is academic misconduct and will be treatedaccordingly.Multi-texturing: 5%Multiple textures (e.g. grass and rock) are used across different parts of the terrain (at yourdiscretion), with appropriate blending where they meet.Player movementThere are two possible modes for movement, simple keyboard controls or complexkeyboard + mouse controls. Only one of the two modes should be implemented.Player movement (simple): 10%The player should be able to move through the world using WSAD or the arrow keys:Key MovementW or Up Move forward in direction currently facingS or Down Move backwards A or Left Rotate leftD or Right Rotate rightThe player should always be positioned at the same height as the terrain below them. Thiswill require interpolating the height of a point in the middle of a height map cell from theneighbouring vertices. The player should not be allowed to move outside the bounds of theterrain.Player movement (complex): 15%As an extension代写COMP330作业、代做3D modelling作业、代做Java/c++编程语言作业、Python实验作业代写 代 to the simple player movement, implement mouse look and strafing. Theplayers heading rotates when the mouse is left and right. Moving the mouse up/down tiltsthe camera up and down.Key MovementW or Up Move forward in direction currently facingS or Down Move backwardsA or Left Move left (strafing)D or Right Move right (strafing)Mouse left Rotate leftMouse right Rotate rightMouse up Look up (rotate camera)Mouse down Look down (rotate camera)CameraThere are two camera modes, first person perspective or third-person orthographic. You canimplement either or both for extra marks. If you implement both modes, use the “C” key toswitch camera modes.An optional feature, in either mode, is to use the mouse-wheel to zoom the camera in/out.First person perspective camera: 10%In this mode, the camera is a first-person perspective camera, from the player’s point ofview. The camera should be positioned at the player’s current position (at an appropriateheight above the ground), facing along their current heading (tilted up or down if complexplayer movement is implemented). The camera should implement the perspectiveprojection, with an appropriate field of view.Note: This mode does not require a player avatar mesh model, as the player cannot seethemselves.Third person orthographic camera: 10%In this mode, the camera is a third-person orthographic camera, from a point of view aboveand behind the player, looking down on it. The camera should follow a fixed distance aboveand behind the player. The camera should implement the orthographic projection, with anappropriate field of view.Note: This mode requires a player avatar mesh model, as the player can see themselves. Asimple 3D shape (cube, cylinder) is sufficient.Camera zoom: 5% per camera mode.Using the scroll-wheel on the mouse, allow the player to zoom the camera in/out.LightsMultiple lighting modes are possible. If you have more than one lighting mode, you shouldimplement some way to switch between them (either a key control, or by using multiplelevel files)Directional light 5%The world is lit using a single directional light (e.g. the Sun). Surfaces use an appropriatediffuse flat-shaded lighting implementation.Point light on player 5%The world is lit using a point light connected to the player. Surfaces use an appropriatediffuse flat-shaded lighting implementation.Smooth shading 10%Either of the lighting modes above, but using smooth shading, by interpolating normalsfrom neighbouring vertices.EffectsThese options are recommended only as a challenge if you find the other aspects of theassignment easy.Screen-space effects 5%Your choice of screen-space effects, such as: Bloom Ambient occlusion Motion blur Fog Film grainTransparency 5%Add transparent objects you your scene and use alpha-blending to render themappropriately.ReportThe assignment framework includes a report template. Complete the table at the front ofthe report indicating which of the components above you are attempting. For each component, give an indication of where in the project it is implemented. Failure to submit acomplete report carries a 20% penalty.Marking RubricTotal mark = 40% for components implemented, 30% for code correctness, 20% for clarity of codeand 10% for creativity.Each component that you implement will be marked for completeness of the implementationagainst the specification. The overall program will be marked for correctness, clarity and creativityaccording to the following rubric.Grade Correctness Clarity CreativityHD(100)Code is free from anyapparent errors.Good consistent style. Wellstructured & commentedcode.Original use of graphics to achieveeffects not included in lectures orpracs.HD(90)Code has minor errorswhich do not significantlyaffect performanceMinor inconsistencies instyle, or patches ofundocumented code.D(80)Code has one or two minorerrors that affectperformanceCode is mostly readable butcould be better structuredCreative use of graphics effectsfrom lectures/pracs to adddistinctiveness to submissionCr(70) Code has multiplesignificant errorsCode is inconsistentlystructured, but readableP(60) Code is functional butcontains major flawsCode is poorly structuredand patchily documentedBasic effort put into colour paletteand shapes to give the simulationsa consistent styleF (50) Code is not functional Code is undocumented andlargely unreadableImplements required featureswithout effort put into style 转自:http://www.7daixie.com/2019051924638957.html

    相关文章

      网友评论

          本文标题:讲解:COMP330、3D modelling、Java/c++

          本文链接:https://www.haomeiwen.com/subject/ymvpactx.html