自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 问答 (1)
  • 收藏
  • 关注

原创 Neural Radiance Caching

论文链接视频链接这是 Thomas Müller 等人在 SIGGRAPH 2021 上发表的。论文写的有点 pedantic,没有看懂,但是看了视频就懂了。Radiance CachingRadiance Caching 是个老算法了。主要就是把一个点辐射出的 Radiance 编码成 Spherical Harmonics,然后在实时渲染中帮助做 shading。可以作为 precomputation 算法,也可以用来加速实时光追。Pre-convolved Radiance Caching

2022-02-25 20:02:56 3504 1

原创 日语中「よう」的用法整理

「~Vようにする・ようにしている」尽量よく運動するようにしてください。习惯毎朝、日本語のニュースを読むようにしている。毎日 6 時に起きるようにしている。「~Vようになる」变得……日本語の文章を読めるようになった。「無意識Vように~」目的(意识动词表目的要用ために)早く傷(きず)が治るように、薬を塗る。後で忘れないように、ノートにメモをしておいた。「~よう」推测(同「みたい」)昨日の夜、雪が降ったようです。部屋に谁かいるようですね。比喻或举例(像……一样

2021-12-23 16:28:25 1574

原创 使用VS 2019编译Mitsuba渲染器

Mitsuba 1 代已经很老旧了。它最新的版本要求使用VS 2017编译,我只装了VS 2019,在编译的时候踩了很多坑。使用 master branch 的坑一开始按照这篇博文讲的方法操作,用 annaconda 创建了一个 python 2.7 的环境,然后安装了 dependecies_win64 里的 Scons 2.5.1。结果在编译的时候,提示找不到 MSVC 编译器。后面还用 visual studio installer 安装的 2017 的 vc,但怎么尝试都是一样的问题。使用 s

2021-09-24 13:09:44 5364

原创 计算机图形学中涉及到的光度学概念

需要注意的是,计算机图形学是把辐射 (Radiance) 等概念和亮度 (Luminance) 等概念混为一谈的。前者是辐射度量学的概念,后者是光度学的概念;事实上,辐射强不一定亮度强,比如红外光人眼是看不见的,那么一个红外光源,它不管辐射是强是弱,人眼都是感觉不到的,所以亮度都是 0。在计算机图形学中,肯定不会讨论人眼看不到的东西,所以如果出现了辐射度量学的概念,那么我们直接把它们当成光度学中共轭的概念就行了。人眼对辐射的可见性用什么衡量呢?要用到光度函数 (Luminous efficiency fu

2021-06-01 14:06:38 1264 1

原创 C++实现霍夫曼编码

#include <iostream>#include <string>#include <cstdlib>#include <vector>#include <algorithm>using namespace std;class HNode {public: int weight; string con...

2020-12-22 10:41:17 2284 1

原创 Python在循环中删除list中元素的注意事项

有时候需要在循环中删除列表中符合条件的元素,但这时要注意一旦使用 remove() 或 pop() 方法,列表的长度,和被删除元素之后的元素的索引就会马上改变,可以这样写代码:i = 0while i < len(exp_list): if SomeFunc(exp_list[i]): exp_list.pop(i) else: i+=1参见:在循环中使用erase()删除元素的注意事项...

2020-09-27 13:19:58 373

原创 在循环中使用erase()删除元素的注意事项

有时候需要在 for 循环中删除符合条件的迭代器指向的元素,但这时要注意一旦使用 erase() 方法,迭代器就相当于变成了野指针,循环就会报错。考虑到 erase() 会返回被删除元素的下一个元素的迭代器,可以这样写代码:for(vector<int>::iterator it = vec.begin(); it != vec.end(); it++) { if (*it % 2 == 0) { // 删除所有偶数元素 it = vec.erase(it); it--; // 因为

2020-09-27 13:13:18 934

原创 后像后写、后像前写、后像前后写在恢复操作时的区别

三者定义后像后写要求日志在保存完毕(包括 COMMIT)后,事务才开始写入磁盘。日志记录的是新值。后像前写要求完成数据写入磁盘后再保存日志(写 COMMIT,但之前的记录还是在写磁盘之前写入日志的)。日志记录的是旧值。后像前后写对于保存日志和数据写入磁盘的顺序没有要求(同样, COMMIT 之前的记录还是在写磁盘之前写入日志的)。新旧值日志都要记录。三者的区别就是写 COMMIT 的时机和记录新值或旧值。恢复操作后像后写后像后写在恢复时,需要从后向前扫描日志找 COMMIT 行,有 COM

2020-08-13 10:58:01 1626 1

原创 日语中表达传闻的「そうだ・らしい」的用法与区别

「そうだ」「みたい・ようだ」「みたい・ようです」用于转达自己听说的内容,如:

2020-08-06 11:06:26 11606 1

原创 动态规划解最长回文子串问题

问题描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab" ("aba" 也是一个有效答案)示例 2:输入: "cbbd"输出: "bb"来源:力扣(LeetCode)状态转移方程P(i,j){j>i+1 and P(i+1,j−1) and S[i]==s[j]j==i+1 and S[i]==S[j]i==jP(i,j)

2020-07-23 11:12:24 158

原创 V1 た時、V2 和 V1 る時、V2 的区别

动词た形+時+动词V1 た時、V2……这种形式表示 V1 发生 / 完成的时间在 V2 之前。例如:フランスへ行った時、かばんを買います。去法国之后,我要买包。朝、彼女に会った時、「おはよう」といっていた。早上遇到她之后,我说了“早上好”。动词原形+時+动词V1 る時、V2……这种句式有两种解释,一是表示先发生 V2 再发生 V1。例如:昨日、寝る時、窓を閉めました。昨天睡觉前我关了窗。二是代表 V2 发生在 V1 发生的途中。例如:フランスへ行

2020-06-24 13:50:55 6421

原创 opencv-python 运动检测,通过计算两帧的差异

背景假设要实现人的面部或手部的运动检测。方法:先对摄像头输入的图像进行处理,只保留符合人体肤色的像素,再计算视频中此帧和上一帧图像数据的差异。差异超过一定阈值即认为画面中的人体产生了运动。代码from cv2 import cv2import matplotlib.pyplot as pltdef cvt(img): # 肤色提取 YCrCb = cv2.cvtColor(img, cv2.COLOR_BGR2YCR_CB) # 转换至YCrCb空间 # 人体肤色在YCrC

2020-06-12 15:00:57 3210 2

原创 日语中表示假设的词语的区别

日语中「~と、なら」等接续词、「て形+も」、「た形+ら」、和条件形都可以用来表示“一……就……”“如果……那么……”等意思,但是它们之间又有区别。「~ても」的用法动词的「て形+も」表示“就算……也……”,是一种让步假设。例如:お金があっても海外旅行をしたくないです。就算有钱也不去海外旅行。雨が降っても、遠足に行きます。就算下雨也要去远足。「~たら」的用法「た形+ら」...

2020-02-08 22:24:50 1690 1

原创 日语中“見られる”和“見える”的区别

“見られる”、“聞ける”是动词“見”、“聞く”的可能形,而“見える”、“聞こえる”被称作知觉动词,是一类特殊动词。“見える”的用法简而言之,知觉动词强调的是器官、空间、对象等客观条件对于感官的影响,例如:我视力没问题,我能看见。黑板上的字够大,我能看见。那个房子太远了,我看不见。我与它之间没有障碍物遮挡,我能看见。例句家のベランダから富士山が見えます。能从家里的阳台看到富...

2020-02-03 12:10:58 9138

原创 OpenGL矩阵运算——GLM库的使用

GLSL中的向量*向量运算在GLSL中,vec4 * vec4是逐元乘法(component wise),例如:vec4 a = vec4(1.0, 2.0, 3.0, 4.0);vec4 b = vec4(0.1, 0.2, 0.3, 0.4);vec4 c = a * b;//c: vec4(0.1, 0.4, 0.9, 1.6)...

2020-02-02 19:45:31 16304

原创 代码检测器、可重叠序列检测器、不可重叠序列检测器的区别

含义代码检测器检测的对象是依次输入的指定代码。检测时应按各代码的规定进行分组,组与组之间不能混淆(即不能重叠)。否则为序列检测器。简而言之,代码检测器要分段,序列检测器不用分段。例设有010代码检测器、010可重叠序列检测器、010不可重叠序列检测器,它们对于以下输入序列的检测结果:输入序列01001010000100代码检测器001...

2020-01-01 14:18:49 3907 2

原创 使用OpenGL(GLUT)显示一个时钟

功能在窗口中央显示一个时钟,单击鼠标右键时钟开始走时;按住鼠标左键上下移动可以调节时刻。代码#include <gl/glut.h>#include <cmath>#define HOURHAND (handtype)0#define MINUTEHAND (handtype)1#define SECONDHAND (handtype)2typedef...

2019-12-27 14:50:34 1222

原创 满二叉树(一维数组)的所有结点的左右子树交换的C++实现

源代码#include <iostream>#include <cmath>using namespace std;template <typename T>void Reverse(T a[], int begin, int end) { for (int i = begin, j = end; i < j; i++, j--) { ...

2019-12-27 14:41:05 293

原创 直接插入排序、希尔排序、快速排序和归并排序的C++代码

源代码#include <iostream>using namespace std;template <typename T, int N>void InsertSort(T (&a)[N]) { for (int i = 1; i < N; i++) { if (a[i] < a[i - 1]) { ...

2019-12-25 13:58:55 279

原创 最大子段和问题:四种不同时间复杂度的算法

问题描述给定一个序列,求出其元素和最大的一个子序列。如果序列所有元素为负数,那么规定最大和为0,最大子序列为空。注意子序列里的元素在原序列中是相邻的(不然的话只要把原序列所有正数找出来就行了)。例序列:[12, 5, -1, 31, -61, 59, 26, -53, 58, 97, -93, -23, 84, -15, 6]最大子序列:[59, 26, -53, 58, 97]穷举算法...

2019-12-02 16:00:01 7477

原创 Python极少代码实现阶乘函数

from functools import reducedef my_factorial(x): if x < 0: raise ValueError('参数不能为负数') return reduce(lambda x, y: x*y, range(1, x+1)) if x != 0 else 1运行结果:>>> for i in ...

2019-12-01 13:09:43 396

原创 Bresenham画线算法的实现

Bresenham画线算法简介只介绍当直线的斜率小于1大于0时的算法:输入线段的两个端点计算Δx, Δy,得到P0=2Δy-Δx,从k=0开始,对于每个xk,检测Pk的符号:Pk<0:下一个要绘制的点为(xk+1, yk),Pk+1=Pk+2Δy否则:下一个要绘制的点为(xk+1, yk+1),Pk+1=Pk+2Δy-2Δx重复步骤3,共Δx-1次效果代码#incl...

2019-10-30 11:16:39 660

原创 利用Python制作将位图转换为字符画的程序

功能输入位图的路径和合适的长宽,生成一个对应的字符画文本文件。代码# -*- coding: utf-8 -*-from PIL import Imageasciichar = list('█▓▒░※∷@#$□*|!-…· ') #分别对应由深到浅的字符def getchar(r, g, b, alpha=256): #R、G、B、通道和Alpha值 if alpha ==...

2019-05-16 16:09:52 380

原创 C语言实现输出星号组成的三角形

功能输出指定底边长度的由*号组成的三角形。第一排输出*,第二排输出***,以此类推。每行中间对齐,每行的最后一个*后输出回车。输入边长为1-80中的奇数如输入错误边长,输出error。代码#include &amp;lt;stdio.h&amp;gt;void xing(int a,int b)//a为*数量,b为行长度{ int i; for(i=1;i&amp;lt;=((b-a)/2);i++) ...

2018-12-14 10:44:45 51069 1

原创 C语言实现学生成绩信息的读取和处理

功能读取文件中关于学生姓名、专业、成绩等信息,计算其总成绩和各专业的学生数、平均成绩,并输出。效果读取文件:程序运行结果:源代码#include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;#include &amp;amp;amp;lt;stdlib.h&amp;amp;amp;gt;#include &amp;amp;amp;lt;string.h&amp;amp;amp;gt;#include &a

2018-12-12 18:40:43 6600 2

原创 Visual Studio Code搭建C/C++编译环境时提示spawn g++ ENOENT的解决方法

Visual Studio Code搭建C/C++编译环境时提示g++ ENOENT的解决方法当按照https://blog.csdn.net/c_duoduo/article/details/51615381的内容搭建编译环境时可能会提示g++ -g {file} -o ${file}.exe。spawn g++ ENOENT的错误信息。经过我的摸索,发现可能有两个原因。 1. launc...

2018-08-17 21:13:32 6990 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除