当前位置: 首页 > news >正文

上海公司注销seo工资

上海公司注销,seo工资,宁波公司核名网站,网站建设包含seo吗题目 光栅化一个三角形 1. 创建三角形的 2 维 bounding box。 2. 遍历此 bounding box 内的所有像素#xff08;使用其整数索引#xff09;。然后#xff0c;使用像素中心的屏幕空间坐标来检查中心点是否在三角形内。 3. 如果在内部#xff0c;则将其位置处的插值深度值 (…题目 光栅化一个三角形 1. 创建三角形的 2 维 bounding box。 2. 遍历此 bounding box 内的所有像素使用其整数索引。然后使用像素中心的屏幕空间坐标来检查中心点是否在三角形内。 3. 如果在内部则将其位置处的插值深度值 (interpolated depth value) 与深度缓冲区 (depth buffer) 中的相应值进行比较。 4. 如果当前点更靠近相机请设置像素颜色并更新深度缓冲区 (depth buffer)。题解 本次作业需要实现代码框架中的两个接口 void rst::rasterizer::rasterize_triangle(const Triangle t); static bool insideTriangle(int x, int y, const Vector3f* _v);1. 在2D空间中计算一个三角形的轴对称boundbox 只需要计算出三角形的三个顶点坐标中,x最大最小值y最大最小值。即 ( x m i n , y m i n ) , ( x m a x , y m a x ) (x_{min},y_{min}),(x_{max},y_{max}) (xmin​,ymin​),(xmax​,ymax​) 使用math.h库实现如下 int xMin, yMin, xMax, yMax;xMin std::floor(std::min(std::min(v[0].x(),v[1].x()),v[2].x()));yMin std::floor(std::min(std::min(v[0].y(), v[1].y()), v[2].y()));xMax std::ceil(std::max(std::max(v[0].x(), v[1].x()), v[2].x()));yMax std::ceil(std::max(std::max(v[0].y(), v[1].y()), v[2].y()));注意顶点坐标都是浮点数但是我们计算出的包围盒必须是整型。左上角下取整右下角上去整。 2. 判断像素的中心点是否在三角形内部 其实方法有很多种具体可以参考这个博客。 最常用最高效的有两种重心坐标法和向量叉积。 本次作业选用向量叉积法 代码如下 static bool insideTriangle(int x, int y, const Vector3f* _v) { // TODO : Implement this function to check if the point (x, y) is inside the triangle represented by _v[0], _v[1], _v[2]auto v0_v1 _v[1] - _v[0];auto v1_v2 _v[2] - _v[1];auto v2_v0 _v[0] - _v[2];auto v0_P Vector3f(x, y, _v[0].z()) - _v[0];auto v1_P Vector3f(x, y, _v[1].z()) - _v[1];auto v2_P Vector3f(x, y, _v[2].z()) - _v[2];auto v0pCross v0_v1.cross(v0_P);auto v1pCross v1_v2.cross(v1_P);auto v2pCross v2_v0.cross(v2_P);if (v0pCross.dot(v1pCross) 0 v0pCross.dot(v2pCross) 0)return true;return false; }因为我们判断的是一个像素的中心点是否在三角形内部所以需要给x,y 分别加0.5,即insideTriangle(x0.5,y0.5,t.v) 注意Vector3f Triangle::v[3] 中存放的就是三角形的三个顶点。 3.根据插值得到的深度值和深度缓冲的深度值比较。 插值运算使用代码框架所以这块比较简单。 代码如下 for (int i xMin; i xMax; i){for (int j yMin; j yMax; j){if (insideTriangle(i0.5f, j0.5f,t.v)){auto[alpha, beta, gamma] computeBarycentric2D(i, j, t.v);float w_reciprocal 1.0/(alpha / v[0].w() beta / v[1].w() gamma / v[2].w());float z_interpolated alpha * v[0].z() / v[0].w() beta * v[1].z() / v[1].w() gamma * v[2].z() / v[2].w();z_interpolated * w_reciprocal;int index get_index(i, j);if (depth_buf[index] z_interpolated){depth_buf[index] z_interpolated; // 更新深度缓冲区set_pixel(Vector3f(i,j,z_interpolated),t.getColor());}}}}注意如果当前z值小于深度缓冲区的深度值一定要更新深度缓冲区。 结果 代码 static bool insideTriangle(int x, int y, const Vector3f* _v) { // TODO : Implement this function to check if the point (x, y) is inside the triangle represented by _v[0], _v[1], _v[2]auto v0_v1 _v[1] - _v[0];auto v1_v2 _v[2] - _v[1];auto v2_v0 _v[0] - _v[2];auto v0_P Vector3f(x, y, _v[0].z()) - _v[0];auto v1_P Vector3f(x, y, _v[1].z()) - _v[1];auto v2_P Vector3f(x, y, _v[2].z()) - _v[2];auto v0pCross v0_v1.cross(v0_P);auto v1pCross v1_v2.cross(v1_P);auto v2pCross v2_v0.cross(v2_P);if (v0pCross.dot(v1pCross) 0 v0pCross.dot(v2pCross) 0)return true;return false; }void rst::rasterizer::rasterize_triangle(const Triangle t) {auto v t.toVector4();int xMin, yMin, xMax, yMax;xMin std::floor(std::min(std::min(v[0].x(),v[1].x()),v[2].x()));yMin std::floor(std::min(std::min(v[0].y(), v[1].y()), v[2].y()));xMax std::ceil(std::max(std::max(v[0].x(), v[1].x()), v[2].x()));yMax std::ceil(std::max(std::max(v[0].y(), v[1].y()), v[2].y()));for (int i xMin; i xMax; i){for (int j yMin; j yMax; j){if (insideTriangle(i0.5f, j0.5f,t.v)){auto[alpha, beta, gamma] computeBarycentric2D(i, j, t.v);float w_reciprocal 1.0/(alpha / v[0].w() beta / v[1].w() gamma / v[2].w());float z_interpolated alpha * v[0].z() / v[0].w() beta * v[1].z() / v[1].w() gamma * v[2].z() / v[2].w();z_interpolated * w_reciprocal;int index get_index(i, j);if (depth_buf[index] z_interpolated){depth_buf[index] z_interpolated;set_pixel(Vector3f(i,j, z_interpolated),t.getColor());}}}} } 参考文献 判断点是否在三角形内
http://www.hkea.cn/news/14459094/

相关文章:

  • 做网站多少费用更换网站程序
  • 做介绍美食网站的菜单的官方百度
  • 深圳社区网站开发公司网站颜色搭配
  • 广西南宁网站推广做ar的网站
  • 景德镇网站建设景德镇做百度收录比较好的网站
  • 设计一个网站的步骤网页打不开视频
  • 帝国cms怎么做音乐网站福州鼓楼区建设局网站
  • 商务网站建设联系方式编程软件下载手机版
  • 淘宝网站是谁做的好处平面设计很难学吗
  • 建设通和天眼查网站注册推广赚钱一个30元
  • 三艺网站建设自己要注册商标去哪注册
  • 南宁网页制作招聘网seo黑帽是什么
  • 建设公司网站的好处保亭交通工程建设局网站
  • 国外设计网站pinterest极速版免费虚拟主机空间互联
  • 如何查一个网站有没有做外链电子商务网站建设需要多少钱
  • 做非洲国际贸易网站wordpress全站采集
  • 有没有专门做标书的网站装饰装修网站建设方案
  • 做网咖的网站如何做ppt课件
  • 海南三亚8v1视频cpu游戏优化加速软件
  • 程序员 给老婆做网站网络项目
  • 杭州网站建设外包公司做打鱼网站
  • 成都网站建设小程序网站开发有哪些软件
  • 微同步网站岳阳手机网站制作
  • 免费做金融网站有哪些建设银行网站用户名更改
  • 网站怎么制作 推广什么网站做推广效果好
  • 手机优化什么意思扬州seo招聘
  • 北京工商局网站怎么做增资论坛网站模
  • 济南市住房和城乡建设局官方网站大学生创新项目申报书 做网站
  • 深圳沙井做网站百度推广帮做网站
  • 做一个微信公众号需要多少钱杭州seo网站推广