- 博客(31)
- 收藏
- 关注
原创 【Games101】Lecture09 Shading 03笔记
视频&图片来源:【B站】GAMES101-现代计算机图形学入门-闫令琪Guide1. 着色1.1 重心坐标1.1.1 在三角形内部进行插值1.1.2 重心坐标1.1.3 重心坐标的使用1.2 纹理查询1.2.1 双线性插值1.2.2 Mipmap1.2.3 三线性插值1.2.4 局限性1. 着色1.1 重心坐标1.1.1 在三角形内部进行插值特指三角形在顶点进行操作在整个三角形中获得平滑的变化数值定义的内容:纹理映射,颜色,法向量…怎么做:重心坐标.1.1.2 重心坐标给.
2022-04-26 11:08:13 312
原创 【Games101】Lecture 08 Shading 2 笔记
视频&图片:【B站】GAMES101-现代计算机图形学入门-闫令琪Guide1. 着色1.1 Blinn-Phong光照模型1.1.1 环境光向1.2 着色频率1.3 图形管线 Graphics Pipeline1.3.1 Shader1.3.2 GUPs1.4 纹理映射1.4.1 UV1. 着色1.1 Blinn-Phong光照模型高光向R→\overrightarrow{R}R:反射方向接近镜面反射,就是说当观察方向足够接近镜面反射方向时能看见高光。Blinn-Phong模型:观.
2022-04-25 15:06:38 328
原创 【Games101】Lecture07
视频&图片来源:GAMES101-现代计算机图形学入门-闫令琪目录1. 可见性/遮挡1.1 深度缓存 Z-buffering2. 着色 Shading2.1 照明与着色2.1.1 漫反射1. 可见性/遮挡画家算法:先画远处,再画近处,近处覆盖远处(类似于真实的绘画过程)。e.g. 绘制一个立方体,先绘制距离远平面,然后绘制上、下、左、右四面,最后绘制近平面。p.s. 这种画法再画周围的四个面上还有深度上的顺序,需要排序。一种更复杂的情况:两两之间存在覆盖关系(闭环!)这种情况.
2022-04-22 15:22:20 457
原创 【Games101】作业1 踩坑实录(基础部分)
Guide1. 绕Z轴旋转:get_model_matrix(float rotation_angle)2. 构建透视投影:get_projection_matrix(float eye_fov, float aspect_ratio, float zNear, float zFar)2.1 透视投影转正交投影2.2 正交投影结果移动到原点位置2.3 投影结果规则化作业1简单来说就是在屏幕上绘制一个三角形线框。代码框架已经提供,需要完成的函数补充有:1. 绕Z轴旋转:get_model_matrix(
2022-04-21 19:20:36 838 2
原创 【Games101】Lecture06 光栅化 笔记
视频&图片:【B站】GAMES101-现代计算机图形学入门-闫令琪目录1. 反走样1.1 Sampling Artifacts1.2 抗锯齿的应用2. 可见性/遮挡2.1 Z缓冲1. 反走样因为像素点是内部颜色均匀的小方块,所以如果想要画一个三角形,实际采样的时候会变成下图这种状况(都是锯齿,学名走样)。采样不仅能发生在不同的位置,也能针对同一物体在不同时间的状态进行采样(视频和动画这种)。1.1 Sampling ArtifactsArtifacts:泛指图形学上的锯齿等等瑕疵的.
2022-04-20 21:00:30 323
原创 【Azure Kinect】冤种踩坑记录
2022.4.19——开坑踩坑记录传感器SDK人体跟踪SDK传感器SDK1. output.mkv录制失败试了两次报了两次error。第一次是因为给VS2019装新模块的时候把目录的读写权限改了,无法创建文件;第二次是因为录制的时候连着k4aviewer.exe没关,报了个设备占用,关了之后就可以正常录制了。人体跟踪SDK1. k4abt_simple_3d_viewer.exe闪退...
2022-04-19 23:15:47 1271 2
原创 【Games101】Assignment 0 踩坑记录
依照参考PDF按步骤完成,出现的问题:通过菜单栏安装扩展功能(涉及双向拖拽这些)解决方法:调用终端安装输密码的时候不显示密文,输完直接回车就OK双向拖拽失效解决方法:安装完扩展功能重启系统再设置就可以了…运行结果:注意别打错就行。...
2022-04-18 16:53:35 211
原创 【Games101】Lecture04 变换-续 笔记
目录1. 三维变换1.1 仿射变换1.2 任意的旋转2. 观测变换 Viewing transformation2.1 视图(View)/ 相机变换2.2 投影变换2.2.1 正交投影2.2.2 透视投影1. 三维变换1.1 仿射变换齐次坐标下的仿射变换:(x′y′z′1)=(abctxdeftyghitz0001)⋅(xyz1)\left(\begin{matrix}x^{'}\\y^{'}\\z^{'}\\1\end{matrix}\right)=\left(\begin{matrix}a&am
2022-04-17 21:27:38 104
原创 【Games101】Lecture03 变换 整理
视频&图片来源:【B站】GAMES101-现代计算机图形学入门-闫令琪目录1. 线性变换1.1 缩放1.1.1 均匀缩放1.1.2 非均匀缩放1.2 反射1.2.1 水平反射1.3 切变1.4 旋转1.5 总结2. 齐次坐标2.1 特殊变换:平移1. 线性变换1.1 缩放1.1.1 均匀缩放x′=sx,y′=syx^{'}=sx,y^{'}=syx′=sx,y′=sy矩阵形式表示:[x′y′]=[s00s][xy]\left[\begin{matrix}x^{'}\\y^{'}\.
2022-04-16 17:19:26 236
原创 【Game101】Lecture02 线性代数 整理
B站原视频:GAMES101-现代计算机图形学入门-闫令琪Lecture 01实时与离线帧率达到30fps及以上,从计算机角度可以称为实时(Real-time);否则,称为离线(Offline)。光栅化将几何基元(3D图形)作用到屏幕上...
2022-04-15 20:09:32 648
原创 【LeetCode】面试题17.21 直方图的水量
原题双指针法int trap(int* height, int heightSize){ int left=0,right=heightSize-1; //左右指针 int left_h=0,right_h=0; //两边最大高度 int water=0; //水量 while(left<right){ left_h=fm
2021-04-02 14:49:46 92
原创 【LeetCode】1006.笨阶乘
原题暴力枚举,纯数学解法。当N=1时,N=1;当N=2时,N=2;当N=3时,N=6;当N=4时,N=7;当N>4时,存在 clumsy(N)=N×(N−1)/(N−2)+(N−3)−(N−4)×...clumsy(N) = N \times (N-1)/(N-2)+(N-3)-(N-4) \times ...clumsy(N)=N×(N−1)/(N−2)+(N−3)−(N−4)×...化简上式,先讨论 N×(N−1)/(N−2)N \times (N-1)/(N-2)N×(N−1)/(
2021-04-01 23:04:37 92
原创 【Leetcode】1365.有多少小于当前数字的元素
题目描述:给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个 nums[i]你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。 以数组形式返回答案。示例:输入:nums = [8,1,2,2,3]输出:[4,0,1,1,3]解释: 对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。对于 nums[1]=1 不存在比它小的数字。对于 nums[
2020-05-30 12:52:41 278
原创 【Leetcode】1313.解压缩编码列表
题目描述:给你一个以行程长度编码压缩的整数列表 nums 。 考虑每对相邻的两个元素 [freq, val] = [nums[2i],[nums[2i+1]] (其中 i >= 0 ),每一对都表示解压后子列表中有 freq 个值为 val 的元素,你需要从左到右连接所有子列表以生成解压后的列表。 请你返回解压后的列表。示例:输入:nums = [1,2,3,4]输出:[2,4,4,4]解释:第一对 [1,2] 代表着 2 的出现频次为 1,所以生成数组[2]。第二对 [3,4] 代表
2020-05-30 12:20:19 113
原创 【Leetcode】1450.在既定时间做作业的学生人数
我发誓这是做的最简单的一道leetcode…遍历数组计数即可,时间复杂度O(n)。执行双百。题目描述及示例:数组遍历:Cint busyStudent(int* startTime, int startTimeSize, int* endTime, int endTimeSize, int queryTime){ int count=0; //计数 for(int i=0;i<startSize;i++) { if(startTime[i]<=queryTime&&a
2020-05-30 11:42:47 169
原创 【Leetcode】1299.将每个元素替换为右侧最大值
题目描述;给你一个数组 arr ,请你将每个元素用它右边最大的元素替换,如果是最后一个元素,用 -1 替换。示例:输入:arr = [17,18,5,4,6,1]输出:[18,6,6,6,1,-1]没啥技术含量的一道题,正序暴力做也可以就是数组长了会比较烦。直接用逆序找会快很多。有小坑,和1431那道一样。逆序遍历1:C/** * Note: The returned array must be malloced, assume caller calls free(). */in
2020-05-29 20:48:26 148
原创 【Leetcode】1295.统计位数为偶数的数字
枚举法1:Cint getLen(int n){ int count=0; while(n>0) { count++; n=n/10; } return count;}int findNumbers(int* nums, int numsSize){ int count=0; int len; for(int i=0;i<numsSize;i++) { len=getLen(nums[i]); if(len%2==0) count++; }.
2020-05-29 20:23:54 122
原创 【Leetcode刷题】1431.拥有最多糖果的孩子
题目描述:四则运算吧…没什么算法,都是常规操作。既然允许多个小孩拿到最大值,那么,只要extraCandies给的够多,就有可能所有人都是拿的最大的。所以判断条件用差值:设没进行二次分配前的最大值为max,每个人拿到的为value,true的判断条件为max-value<=extraCandies暴力枚举1:C/** * Note: The returned array must be malloced, assume caller calls free(). */bool* kidsW
2020-05-28 22:03:54 262
原创 【Leetcode】88.合并两个有序数组
题目描述:先合并排序后替换1:C先把两个有序数组合并成新的有序数组,再替换nums1。代码:void merge(int* nums1,int nums1Size,int n,int* nums2,int nums2Size,int m){ int i=0,j=0,k=0; int *nums3=(int *)malloc(sizeof(int)*(m+n)); //新数组 while(i<n&&j<m) { if(nums1[i]<nums2[
2020-05-28 21:24:35 147
原创 【Leetcode刷题】目录
数组:001.两数之和004.寻找两个正序数组的中位数027.移除数组035.搜索插入位置字符串:013.罗马数字转至整数哈希表:001.两数之和数学:007.整数翻转009.回文数013.罗马数字转至整数双指针:027.移除数组二分查找:004.寻找两个正序数组的中位数035.搜索插入位置分治算法:004.寻找两个正序数组的中位数...
2020-05-28 20:16:19 116
原创 【Leetcode刷题】35.搜索插入位置
问题描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。 如果目标值不存在于数组中,返回它将会被按顺序插入的位置。可以假设数组中无重复元素。示例1:输入:[1,3,5,6],5输出:2考虑的时候想的很简单,因为是有序数组,直接暴力遍历过去就可以了,时间复杂度O(n)。看了题解里的提示才发现原来还能用二分法,时间复杂度可以简化到O(logn)。暴力遍历第一次提交的时候还忘记考虑target小于nums[0]的情况emmm…暴力法1:Cint searchInsert
2020-05-27 20:21:53 127
原创 【Leetcode刷题】27.移除元素
描述:给你一个数组nums和一个值val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出的新长度。示例:给定nums=[3,2,2,3],val=3 。返回新长度2,数组前两个元素均为2. 不需要考虑数组中超出新长度的元素。首先想到单指针暴力遍历,因为限制了原地操作不能建新的数组所以否决。随后考虑双指针。双指针1:Cint removeElem
2020-05-27 19:47:18 105
原创 【Leetcode】013.罗马数字转至整数
题目描述及示例:解法1:C分析题目,可知,当右边的数大于左边的数时,左边的数取负值。例如MCMXCIV,其中M=1000,C=100,X=10,I=1,V=5。则MCMXCIV=1000+(-100)+1000+(-10)+100+(-1)+5=1994。代码实现如下:int getKey(char s){ //查表用 int key=0; switch(s) { case 'I': key=1; break; case 'V': key=5; break; case '
2020-05-25 00:04:09 107
原创 【Leetcode刷题】004.寻找两个正序数组的中位数
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2020-05-24 23:09:55 169
原创 【CSAPP】第一章整理(进度1.3)
第一章 计算机系统漫游主要是全书概览。示例程序hello.c#include <stdio.h>int main(){ printf("hello,world"); return 0;}1.1 信息就是位+上下文hello程序的生命周期是从一个源文件(or源程序)开始的。源程序事实上是由0和1组成的比特序列,其中1 Byte=8 bits。每个字节表示程序中某个文本字符。大部分现代系统都使用ASCII标准来表示字符,也就是用一个唯一的单字节大小的整数值来表示每个字符。
2020-05-15 23:29:53 124
原创 【Unity3D】简单场景切换实现PressToStart功能
参考文档:Unity DocumentationPress To Start调用库:UnityEngine.SceneManagement使用函数:SceneManager.LoadScene(“目标场景名”)我自己做的是应用于开始界面,实现Press to Start的功能,所以是click动作触发脚本。因为要挂在button上所以申明是public。代码实现:using UnityEngine.SceneManagement;using UnityEngine;public clas
2020-05-13 20:30:45 850
原创 【Leetcode刷题】009.回文数
题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例1输入: 121输出: true示例2输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。暴力法1:C由示例可知:因为带负号的回文数最后一位必然是负号,所以,负数都不是回文数。那么思路很简单:所...
2020-04-23 04:10:23 134
原创 【Leetcode刷题】007.整数反转
题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。示例:输入:123输出:321暴力法1:C核心思想很简单,把每一位拆解出来,然后累加到新的整数里。时间复杂度:O(log10(n))(?大概...
2020-04-23 03:51:17 236
原创 【LeetCode刷题】001.两数之和
题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:输入:nums=[2,7,11,15],target=9返回:[0,1]解法1:暴力法(C)相当朴实无华纯属暴力解答,就是从第一个开始遍历找。/* * Note: T...
2020-04-22 21:50:27 107
原创 【Unity3D】单个按键控制两个摄像机画面之间切换
做赛车游戏小课设碰到的小问题,琢磨了一下找到一个比较偷懒的暴力解决方法。说明一下需求:1.一个第一视角摄像机、一个第三视角摄像机,两个摄像机画面用键盘输入控制切换2.只使用一个按键进行切换。打个比方:默认第三视角相机为主画面,空格键Space为切换控制。当我按一次空格,主画面切换到第一视角摄像机,再按一次,切换回第三视角。具体实现:using System;using Unity...
2020-03-31 20:50:18 7990 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人