NES模拟器

前段时间把以前上传到优酷上的视频搬到了B站上,里面包含一个用STM32F407单片机上移植Nes模拟器玩超级玛丽的视频。视频大概是下面这个样子的。当时一只手玩,另一只手拿着HTC安卓手机拍的,那时候还是安卓手机刚刚兴起,好像小米也才刚发布第一款手机。所以拍摄的效果并不好,仅仅用作……

阅读全文

2020,我在武汉的这一年的故事

缘起 距离上一次写年度总结已经有4年了,毕业工作后整个人似乎就总是处于慌慌张张的生活状态当中,忙着工作,忙着买房,忙着结婚…回看几年前记录下的文字不免想到,要是这几年能抽时间记录下自己的生活状态,对自己的认识是否会更深几分? 作为小市民阶级,2020年的确极具魔幻现实风……

阅读全文

谈谈OpenCV中的四边形

首先抛出一个问题,给定一系列二维平面上的的点,这些点是可以组成一个封闭的二维图形。因为这些点是矩形区域拍摄图像后识别得到的图形的边界点,所以我们要抽象出来这个矩形,也就是我们要反映出这个矩形。问题是在拍照的时候摄像头可能不是正对着图形的,那么矩形就必然在图像上反映为一个四边形, 如……

阅读全文

PyQt5+OpenCV多线程显示摄像头数据

pyqt5是一套Python绑定Digia QT5应用的框架。它可用于Python 2和3。Qt库是最强大的GUI库之一。pyqt5很大的优势就是跨平台,而且使用起来非常的方便,编写的代码比较精简,又能实现比较复杂的界面。在很多视觉程序中都需要GUI, 搭配OpenCV, pyqt5可方……

阅读全文

VS Code远程开发配置

前言 北京时间2019年5月3日,在 PyCon 2019 大会上,微软发布了 VS Code Remote,开启了远程开发的新时代!这次发布包含了三款核心的全新插件,它们可以帮助开发者在容器,物理或虚拟机,以及 Windows Subsystem for Linux (WSL) 中实现无缝的远程开发。通过安装 Remote Development Extension Pack ,你可以快速上手远程开发。 Visual Studio Code Remote 允许开发者将容器,远程……

阅读全文

Go语言实现RayTracing

Ray Tracing in one weekend是Peter Shirley ray tracing系列三部曲的第一本,也是学习ray tracing入门比较容易的一本书,原书中附带的有C++版本的code,最近在学习golang, golang中正好有image包,可以直接生成渲染好的jpg文件,那么就用golang来改写了一遍……

阅读全文

Games101笔记|Shading

当这些物体都变成三角形之后,变成屏幕上的一个个像素点之后,这些像素的值和颜色应该是什么呢?这个就是着色的功能。下一步操作为着色。 挪动一下光源后,物体并没有发生变化,但是物体的颜色却发生了变化。这个问题应该如何解决,就是着色的作用。 这门课中着色的定义:对不同的物体应用不同的材质这样……

阅读全文

Games101笔记|Z-Buffer(深度缓冲)

2 可见性与遮挡 2.1 画家算法 原理 先对远处的物体进行光栅化,后逐步对近处的物体进行光删化操作。(画近处的物体时会覆盖掉之前画的远处的一些物体)这样就可以正确地处理遮挡的问题了。 涉及到一个问题 这里涉及到一个问题:当某些物体在深度上存在互相遮挡的情况,此时没有办法定义顺序关系,这样就无法使……

阅读全文

Games101笔记|光栅化和反走样

在“MVP变换矩阵推导”中首先进行了Model transformation, 也就是摆放好物体(对象);然后就是View transformation摆放好相机(位置,拍摄方向,视场角等);最后就是Projection transformation, 这里面包含有正交投影(Orthogtaphic projection)它是将长方体(cuboi……

阅读全文

Games101笔记|MVP变换矩阵推导

本文是games101课程的第3,4课的相关笔记,这篇内容对于CG非常的重要!!!特别是推导的过程,非常有必要手推一遍!。所谓的MVP变换就是:model-view-project变换。本文中使用的向量均表示的是列向量,在公式推导的过程中要注意第一点。 首先我们回想下我们在拍班级毕……

阅读全文