代做Part 1: Optimising a Rasterizer代做C/C++程序

Part 1: Optimising a Rasterizer (40 marks)

This section carries a total of 40 marks.

The goal of this part of assignment is to enhance your understanding of games rendering pipelines by optimising a given rasterizer via any optimisation you see fit and culminating with using multithreading in C++. You will measure performance improvements and test your solutions on provided scenes and a custom one of your own creation.

You will be provided with a base rasterizer implemented in C++. This code already includes the following:

· Geometrical transformations (translation, scaling, rotation, perspective transformation etc.).

· Basic rasterization logic to render triangles (including interpolation of normals, depth etc.)

· Basic lighting model

Your first task is to thoroughly understand the base code. We will refer to this version as the base rasterizer.

Optimisation

Your first task is to optimise the base code as you see fit. For each optimisation you include, explain why and how you completed that task. Provide the results of your optimisations when compared to the base rasterizer for the 3 scenes (see below). When providing comparisons you can group your optimisations together, for example, you could optimise all the matrix and vector calculations and group them into one group entitled transformation optimisations. When doing the comparisons make sure that you are using a release version of the code and keep the same settings. Please report on the settings and present these as a screenshot in the report.

Multithreading

Your second task is to add multithreading to your code via the use of C++ std::thread library. Your task is to try and achieve the best speedup for the given number of threads on your Warwick-issued machine (up to 11 threads; although you can show results for 22 threads with the use of hyperthreading). The behaviour of the multithreaded version must correspond that that of the base rasterizer. You are permitted to present more than one way of dividing the tasks for parallelism and provide results for all your solutions. Provide a detailed description of your solution and how your tasks are broken down and how the solution avoids any race conditions. Provide comparisons with base rasterizer for the three scenes. You should provide overall results which include the optimisations from a) also. Results can be presented in multiple ways but a speedup graph is required for each scene.

Scene Testing

Two pre-designed scenes will be provided and the code will be available for these:

· Scene 1: Provided.

· Scene 2: Provided.

· Scene 3: Develop your own scene which showcases different parallel issues and optimisations. Basic primitives are sufficient for this scene. Explain your choice of scene in the report.

Evaluate your implementation's performance on these scenes and compare it with the base rasterizer.

Report (25 marks)

The report carries a total of 25 marks. It should be broken down cleanly split into two parts, one for Part 1 and one for Part 2.

For Part 1, include:

Section 1: an overall introduction about what has been achieved in the overall.

Section 2: a detailed description of each optimisation in sub sections with performance results. Show code for the optimisation and where in the code it was changed.

Section 3: a detailed description of the parallel strategy(ies) employed and performance results. Use sub-sections for the different strategies.

Section 4: Conclusion based on outcomes and future work given more time.

 


热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图