Giter Site home page Giter Site logo

henrai / games106 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dodoleon/games106

0.0 0.0 0.0 227.23 MB

现代图形绘制流水线原理与实践,作业框架。

License: MIT License

JavaScript 1.65% C++ 42.80% Python 0.56% C 0.80% Objective-C 0.39% Java 10.19% Objective-C++ 0.92% CMake 6.59% GLSL 36.11%

games106's Introduction

games106

现代图形绘制流水线原理与实践,作业框架。

这个fork来自SaschaWillems/Vulkan: Examples and demos for the new Vulkan API (github.com) 在这个项目中有非常多的example可以学习。在学习一个API的时候,代码示例永远是最好的老师。本课程的作业需要在已有的代码示例中做修改。

Build

详情可以查看项目原来的 BUILD文档 ,可以在Windows/Linux/Andorid/macOS/iOS中构建

HomeWork

作业的课程代码在./homework目录下,shader在./data/homework/shaders下。上传作业也按照一样的文件结构。上传对应的文件即可。

作业提交

课程学生注册方法:登录 http://cn.ces-alpha.org/course/register/GAMES106/ 注册账号,填写个人信息,输入验证码ilovegraphics,即可进入课程主页,查看并提交作业

homework0

作业0,作为一个熟悉编译环境的课程作业。最后显示一个如下图一样的三角形。有兴趣可以尝试在Android或者iOS上运行

triangle

homework1

作业1,扩展GLTF loading。作业1提供了一个gltf显示的demo,只支持静态模型,以及颜色贴图。作业1需要在这个基础上进行升级。

作业提交

按照代码框架的目录(方便助教检查和运行代码),把修改的文件打包成zip,或者用git patch的方式提交作业代码。

作业要求

  1. 作业要求的gltf文件已经上传到了data/buster_drone/busterDrone.gltf
  2. 支持gltf的骨骼动画。
  3. 支持gltf的PBR的材质,包括法线贴图。
  4. 必须在homework1的基础上做修改,提交其他框架的代码算作不合格。
  5. 进阶作业:增加一个Tone Mapping的后处理pass。增加GLTF的滤镜功能。tonemap选择ACES实现如下。这个实现必须通过额外增加一个renderpass的方式实现。
// tonemap 所使用的函数
float3 Tonemap_ACES(const float3 c) {
    // Narkowicz 2015, "ACES Filmic Tone Mapping Curve"
    // const float a = 2.51;
    // const float b = 0.03;
    // const float c = 2.43;
    // const float d = 0.59;
    // const float e = 0.14;
    // return saturate((x*(a*x+b))/(x*(c*x+d)+e));

    //ACES RRT/ODT curve fit courtesy of Stephen Hill
	float3 a = c * (c + 0.0245786) - 0.000090537;
	float3 b = c * (0.983729 * c + 0.4329510) + 0.238081;
	return a / b;
}

直接运行会不成功缺少GLTF模型。以及字体文件。根据文档下载 https://vulkan.gpuinfo.org/downloads/vulkan_asset_pack_gltf.zip 并且解压到./data文件夹中

下面是相关的资料

homework2

扩展 homework/homework2 (来自examples/variablerateshading) 中的示例,使得shading rate 可以根据绘制结果本身得频率动态调整,从而在不影响整体绘制质量的前提下,减少着色率。 可以阅读并参考 “Visually Lossless Content and Motion Adaptive Shading in Games” 中的描述,完成

  1. Content Adaptive Variable Shading Rate
  2. Motion Adaptive Variable Shading Rate

reference论文在: data/Visually Lossless Content and Motion Adaptive Shading in Games.pdf

homework5

homework5 比较独立,作业的框架代码以及作业要求:GAMES106-HW5

games106's People

Contributors

saschawillems avatar srsaunders avatar ben-clayton avatar elect86 avatar ekzuzy avatar billhollings avatar jherico avatar iostrowsintel avatar jonnxie avatar natevm avatar per-mathisen-arm avatar baldurk avatar tomek-brcm avatar chrisforbes avatar roboman2444 avatar christianf-arm avatar dcbaker avatar 1ace avatar aleksy-sokolowski avatar kuhar avatar prideout avatar yanchith avatar krooze avatar hevrard avatar dtrajko avatar shoufengyang avatar vzout avatar arufus avatar liuhongyi0101 avatar daemyung avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.