Games101-作业5】的更多相关文章

作业任务: 填写并调用函数 rasterize_triangle(const Triangle& t). 即实现光栅化 该函数的内部工作流程如下: 创建三角形的 2 维 bounding box. 遍历此 bounding box 内的所有像素(使用其整数索引).然后,使用像素中 心的屏幕空间坐标来检查中心点是否在三角形内. 如果在内部,则将其位置处的插值深度值 (interpolated depth value) 与深度 缓冲区 (depth buffer) 中的相应值进行比较. 如果当前点更…
总览 在上次作业中,虽然我们在屏幕上画出一个线框三角形,但这看起来并不是那么的有趣.所以这一次我们继续推进一步--在屏幕上画出一个实心三角形,换言之,栅格化一个三角形.上一次作业中,在视口变化之后,我们调用了函数rasterize_wireframe(const Triangle& t). 但这一次,你需要自己填写并调用函数 rasterize_triangle(const Triangle& t).该函数的内部工作流程如下: 创建三角形的2 维bounding box. 遍历此bound…
总览 在这部分的课程中,我们将专注于使用光线追踪来渲染图像.在光线追踪中最重要的操作之一就是找到光线与物体的交点.一旦找到光线与物体的交点,就可以执行着色并返回像素颜色. 在这次作业中,我们要实现两个部分: 光线的生成 光线与三角的相交. 本次代码框架的工作流程为: 从main 函数开始.我们定义场景的参数,添加物体(球体或三角形)到场景中,并设置其材质,然后将光源添加到场景中. 调用Render(scene) 函数.在遍历所有像素的循环里,生成对应的光线并将返回的颜色保存在帧缓冲区(frame…
总览 Bézier 曲线是一种用于计算机图形学的参数曲线. 在本次作业中,你需要实现de Casteljau 算法来绘制由4 个控制点表示的Bézier 曲线(当你正确实现该算法时,你可以支持绘制由更多点来控制的Bézier 曲线). 你需要修改的函数在提供的main.cpp 文件中. bezier:该函数实现绘制Bézier 曲线的功能. 它使用一个控制点序列和一个OpenCV::Mat 对象作为输入,没有返回值.它会使t 在0 到1 的范围内进行迭代,并在每次迭代中使t 增加一个微小值.对于…
总览 在这次编程任务中,我们会进一步模拟现代图形技术.我们在代码中添加了Object Loader(用于加载三维模型), Vertex Shader 与Fragment Shader,并且支持了纹理映射. 而在本次实验中,你需要完成的任务是: 修改函数rasterize_triangle(const Triangle& t) in rasterizer.cpp: 在此处实现与作业2 类似的插值算法,实现法向量.颜色.纹理颜色的插值. 修改函数get_projection_matrix() in…
总览 到目前为止,我们已经学习了如何使用矩阵变换来排列二维或三维空间中的对象.所以现在是时候通过实现一些简单的变换矩阵来获得一些实际经验了.在接下来的三次作业中,我们将要求你去模拟一个基于CPU 的光栅化渲染器的简化版本. 本次作业的任务是填写一个旋转矩阵和一个透视投影矩阵.给定三维下三个点v0(2.0, 0.0,−2.0), v1(0.0, 2.0,−2.0), v2(−2.0, 0.0,−2.0), 你需要将这三个点的坐标变换为屏幕坐标并在屏幕上绘制出对应的线框三角形.简而言之,我们需要进行…
作业描述 给定一个点P=(2,1), 将该点绕原点先逆时针旋转45◦,再平移(1,2), 计算出变换后点的坐标(要求用齐次坐标进行计算). UE4 知识点 主要矩阵 FMatrix FBasisVectorMatrix FLookFromMatrix FOrthoMatrix FReversedZOrthoMatrix FPerspectiveMatrix FReversedZPerspectiveMatrix FScaleMatrix FTranslationMatrix FRotationT…
类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线程或多进程(已完成) 5,不同主机的用户名,密码,端口可以不同(已完成) 6,可向主机或主机组批量发布命令(已完成) 7,可一次性执行多条操作命令(已完成) 二,程序文件清单 三,程序流程简图 四,程序测试样图 五,程序核心源码 #!usr/bin/env python # -*- coding:u…
SQLServer定时作业任务:即数据库自动按照定时执行的作业任务,具有周期性不需要人工干预的特点 创建步骤:(使用最高权限的账户登录--sa) 一.启动SQL Server代理(SQL Server Agent) 二.新建作业 三.设置作业常规属性 四.设置作业步骤 五.设置作业计划 六.点击"确定" 完成作业设置…
    有些时候,有些作业遇到问题执行时间过长,因此我写了一个脚本可以根据历史记录,找出执行时间过长的作业,在监控中就可以及时发现这些作业并尽早解决,代码如下:   SELECT sj.name , sja.start_execution_date,DATEDIFF (SECOND ,sja.start_execution_date,GETDATE() ) AS ExecutedMin,ja.AvgRuntimeOnSucceed FROM msdb.dbo.sysjobactivity AS…
    有时候搭建的复制在作业比较多的时候,会因为某些情况导致代理停止或出错,如果分发代理时间停止稍微过长可能导致复制延期,从而需要从新初始化复制,带来问题.因此我写了一个脚本定期检查处于停止状态的分发代理,将其启动. 注:该脚本需要跑在分发服务器下的MSDB库中.   USE [msdb]   Create PROC [dbo].[CheckToRestartStopedAgentJob] AS DECLARE @jobname VARCHAR(200)   DECLARE jobname C…
高级FTP服务器开发 一,作业要求 高级FTP服务器开发 用户加密认证(完成) 多用户同时登陆(完成) 每个用户有不同家目录且只能访问自己的家目录(完成) 对用户进行磁盘配额,不同用户配额可不同(完成) 用户登录server后,可切换目录(完成) 查看当前目录下文件(完成) 上传下载文件保持文件一致性(完成) 传输过程中实现进度条(完成) 可以创建或删除目录及文件(完成) 支持断点续传(未做) 二,程序文件清单 Folder目录:用户文件目录 bin目录:程序启动文件目录 conf目录:用户配置…
1.     软件工程师的成长 感想 看了这么多博客,收获颇丰.一方面是对大牛们的计算机之路有了一定的了解,另一方面还是态度最重要,或者说用不用功最重要.这些博客里好些都是九几年或者零几年就开始学习编程了.当时还没有我们现在这么方便的网络环境和计算机环境,他们中大多数人采取的方式都是刷刷刷.有的是刷了几本语言书籍,有的是刷了一本离散数学,还是态度决定一切啊,在这个喧嚣的年代,很少有这样的人了.回想自己的大学生活,大一和大二基本就是混过来的,每天应付应付作业,打打游戏,然后考前突击一下,最后分数一…
第一部分 调研,评测 评测基于微软必应词典Android5.2.2客户端,手机型号为MI NOTE LTE,Android版本为6.0.1. 软件bug:关于这方面,其实有一些疑问.因为相对于市面上其他的词典应用,这个软件的bug实在是是是太多了.(甚至怀疑这个软件不更新是专门作为软工作业的...) 下面就一一列举: 拍照取词功能.这个功能我试过扫描电子图片上很大的英文单词和纸质试卷上的单词,都无法使用.前者是提示翻译错误(有一次报了java的错误),后者的结果是“没有识别到文字”.我也试了有道…
1. 参照 http://www.cnblogs.com/xinz/p/3803109.html 的第一题,每人建立一个GitHub账号,组长建立一个Project,将本组成员纳入此Porject中的Collaborators,并添加zhangyk@tju.edu.cn 为Collaborator.   邓杰: 陈宗雷: (1)在之前已经建立了自己的github账号,账号名称为zongleichen. (2)以合作者身份加入到组长建立的项目: 2.   每人自己建立一个HelloWorld项目,…
一个Mapreduce作业是通过JobClient向master的JobTasker提交的(JobTasker一直在等待JobClient通过RPC协议提交作业),JobTasker接到JobClient的请求后把其加入作业队列中.     DataNode节点的TaskTracker一直通过RPC(RPC--远程过程调用协议它是一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议)向JobTasker发送heartbeat询问有没有任务做,如果有则让其派发任务过来,TaskTra…
1. 情况说明 在利用SQL SERVER数据库复制向导,能够很方便的将一个数据库从一台服务器复制到另一台服务器上,具体操作步骤也十分简单. 不过在实际操作过程常发生“执行SQL SERVER代理作业错误”,点击查看详细会提示“作业失败 有关详细信息,请查看目标服务器上的事件日志”. 2. 处理方案 发生这种情况的一般原因是目标服务器的SQL SERVER代理服务的权限过低.更改代理服务权限为LocalSystem账户即可. A. 开始–程序–SQL SERVER 配置管理器 B. 点击左侧“S…
作业总结 本次课堂的内容为字符串相关的几个函数还有结构体. 字符串相关函数 在此之前的课程中,输入主要都是使用scanf这个函数.而在这节课上,冯老师讲解了字符串获取函数gets.在不需要控制符的情况下,gets函数都可以取代scanf. strcpy函数:实现一个字符串到另一个字符串的拷贝 strcat函数:实现两个字符串连接为一个新的字符串 strcmp函数:实现两个字符串大小的比较(基于 ASCII 码) strlen函数:获得一个字符串的长度数据(需要知道的是,字符串的实际长度还需要加一…
作业总结 两次的作业,都是和指针有关.从第一次的作业开始,我就多次让同学们思考这个问题:为什么要用指针,为什么在函数的形参中要使用指针.如果能够想明白这2个问题,那么同学们应该会指针的了解就差不多足够了,剩下的,就是充分的代码练习. 其实,总的来说,指针这一概念本身很简单,理解起来也并不复杂--指针是一个变量,内部存储的是一个地址,这个地址指向其他的变量/函数(也有可能是空). 用C语言来表述,就是先声明一个指针,在定义它: // 以 int 类型为例 int *point; // 声明一个变量…
本次作业练习的内容是二维数组.下面我先简单的说下二维数组的基本知识点: 二维数组其实这个中文概念颇有误导--会让人感觉这是一个两个维度的概念.所以很多的国外的C语言书籍上会称这种数组为多下标数组:即首先这是一个数组,其次这个数组存在多个下标. 二维数组在C语言的工程应用上其实较少,尤其是在我擅长的单片机开发领域.可能的原因是C语言的二维数组有点过于呆板:它要求第二个维度是等长的,而实际上大家看到的每一句话,似乎都很难等长.在C语言的工程上,似乎更喜欢定义一个一维数组,数组中的每一个元素都是一个指…