【龙书】DirectXMath库
[!NOTE] D3D规定使用左手坐标系,遵循左手法则
[!NOTE] 龙书规定
本书中所使用的术语“标架”(frame)、“参考系”(frame of reference)、“空间”(space)和“坐标系”(coordinate System)皆表示相同的意义。
normalize 的不同译法:标准化,归一化,规范化,规格化,单位化…… 译者按:区间、范围为归一化,名词向量或空间为规范化 (把一个向量的长度变为单位长度称为向量的规范化,方法是将向量的每个分量除以该向量的模,结果得到一个单位向量)
正交(orthogonal)和垂直(perpendicular)为同义词
总链接: DirectXMath 库函数 - Win32 apps | Microsoft Learn
库向量函数 P16:DirectXMath 库矢量负载函数 - Win32 apps | Microsoft Learn
库矩阵函数 P44:DirectXMath 库矩阵函数 - Win32 apps | Microsoft Learn
库四元数函数 P661: DirectXMath 库四元数 ...
Unity数据持久化
什么是数据持久化?数据持久化就是将内存中的数据模型转换为存储模型, 以及将存储模型转换为内存中的数据模型的统称说人话: 将游戏数据存储到硬盘,硬盘中数据读取到游戏中,也就是传统意义上的存盘。
如何理解不同后缀的文件?文件后缀名决定了文件的格式不同的软件可以根据后缀名用来判断文件的类型并且在打开文件时以特定的读取规则去解析它文件后缀名是人为定的规则可以有无数种,可以自定义
Playerprefs基本方法prefs:控制台
Playerprefs 是 unity 提供的可以用于存储读取玩家数据的公共类
PlayerPrefs 的数据存储类似于键值对存储,一个键对应一个值
提供了存储 3 种数据的方法:int float string
键:string 类型
值:int float string 对应 3 种 API
如果不同类型用同一键名进行存储,会覆盖数据
[!NOTE] 数据的唯一性PlayerPrefs 中不同数据的唯一性是由 key 决定的,不同的 key 决定了不同的数据,同一项目中如果不同数据 key 相同,会造成数据丢失要保证数据不丢失,就要建立一个保证 key ...
【龙书】DX12理论
1 概念DX12较之上个版本主要改变:性能优化方面大大减少了 CPU 开销,改进了对多线程的支持。性能提升!
通过 Direct3D 这种底层图形应用程序编程接口(Application Programming Interface, API), 即可在在应用程序中对图形处理器 (Graphics Processing Unit, GPU) 进行控制和编程。我们能够借此以硬件加速的方式渲染出虚拟的 3D 场景。
渲染目标(render target) 是为了渲染场景而将像素绘制到的特定缓冲区 (buffer)。通常是占用部分显存的后台缓冲区,以及纹理(详见后文)。
像素(pixl) 是构成图像的基本元素。从图形角度来讲,可认为像素是一种图像的采样单位(将图像以像素为基础进行划分,再于像素中进行采样)。因此,两张同样大小的图片,分辨率高者,意味着像素数量越多,细节越丰富,画面就越清晰。由于实际显示上的原因(后面注释会提到),也赋予了像素“大小”的概念。在 Direct3D 中,像素被抽象为具有一定长宽的色块。虎书:Pixel is short for “picture element.” ...
冯乐乐入门精要笔记
光照基础光照漫反射光照模型(兰伯特模型)1. 逐顶点漫反射光照在背光面和向光面交界有一些锯齿,背光面明暗一样。
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667Shader "Unlit/myDiffusePixelLevelMat"{ Properties { _Diffuse ("Diffuse", Color) = (1, 1, 1, 1) } SubShader { Pass { //指明该Pass的光照模式 Tags { "LightMode" = "ForwardBase" } ...
【龙书】Windows编程
[!NOTE] 龙书规定为避免混淆,我们将使用大写字母“W”开头的 Windows 来表示视窗操作系统,而以小写字母“w”作为开头的 window 来代表 Windows 系统中的特定窗口。
0 概述资源在 Windows 系统中,多款应用程序可以并发运行。因此,像 CPU、内存乃至显示器屏幕这些硬件资源,都在多应用程序的共享范围之列。为了防止多应用程序在无组织、无纪律的情况下访问或修改资源所引发的混乱,Windows 应用程序并不能直接访问硬件。 Windows 系统的主要任务之一就是管理当前正在运行中的实例化程序并为它们合理分配资源。因此,为避免我们编写的程序因某些操作而对其他运行中的应用产生不必要的影响,这些具体的执行过程都要交由 Windows 系统来加以处理。例如,要展示一个窗口,我们必须调用 Win32API 函数 ShowWindow, 而不能直接向显存中写入数据。
事件、消息队列、消息以及消息循环凡是 Windows 应用程序就要依从事件驱动编程模型( event-driven programming model )。一般来讲,应用程序总会“坐等”某事的发生,即事件 ...
3D数学
[!important] 约定本文以 DX12 使用的左手坐标系/行向量形式为主,使用其他标准会进行标注
左手坐标系/右手坐标系:注意左/右手定则行向量/列向量:行向量右乘,列向量左乘
行向量: $$\begin{array}\\begin{bmatrix}x & y & z\end{bmatrix}\begin{bmatrix}m_{11} & m_{12} & m_{13} \ m_{21} & m_{22} & m_{23} \ m_{31} & m_{32} & m_{33}\end{bmatrix}\=\begin{bmatrix}xm_{11}+ym_{21}+zm_{31} & xm_{12}+ym_{22}+zm_{32} & xm_{13}+ym_{23}+zm_{33}\end{bmatrix}\end{array}$$列向量:$$\begin{bmatrix}m_{11}&m_{12}&m_{13}\ m_{ ...
LearnOpenGL
Open Graphics Library
本站的教程都是基于OpenGL 3.3或更高版本
[[https://blog.csdn.net/xiao_ran_give_up/article/details/124209930#:~:text=在LearnOpenGL中将采用,GLFW%2BCMake%2BGLAD%2BVS2022 来进行OpenGL的环境搭建。]]
图形学坐标点和像素2D坐标和像素是不同的,2D坐标精确表示一个点在2D空间中的位置,而2D像素是这个点的近似值,2D像素受到你的屏幕/窗口分辨率的限制。
RGBA在计算机图形中颜色被表示为有4个元素的数组:**红色、绿色、蓝色和alpha(透明度)**分量,通常缩写为RGBA。当在OpenGL或GLSL中定义一个颜色的时候,我们把颜色每个分量的强度设置在0.0到1.0之间。比如说我们设置红为1.0f,绿为1.0f,我们会得到两个颜色的混合色,即黄色。这三种颜色分量的不同调配可以生成超过1600万种不同的颜色!
图元(Primitive)为了让OpenGL知道我们的坐标和颜色值构成的到底是什么,OpenGL需要你 ...
《Re.回响之信》
简介游戏名:Re.回响之信项目链接:https://github.com/liuke101/ProjectBrBr
2022年网易minigame参赛作品
本游戏是一款动作冒险类游戏,主角小汐要通过路上重重的机关,战胜变异的黑暗怪物,帮助人类拓展生存空间,揭开前文明纪元的失落历史。
游戏PV(若没有显示视频,请尝试刷新页面)
(function(){var player = new DPlayer({"container":document.getElementById("dplayer0"),"autoplay":true,"theme":"#FADFA3","loop":true,"lang":"zh-cn//语言","screenshot":true,"hotkey":true,"preload":"auto","volume":0.9,"video":{"url":"/resources/video/brbr.mp4"}});window.dplayers||(window.dplayers=[]);window.dplayers.push(player);})()
Pytorch精粹
一、基础1 数据操作01 张量1import torch
深度学习存储和操作数据的主要接口是张量(n维数组)。它提供了各种功能,包括基本数学运算、广播、索引、切片、内存节省和转换其他 Python 对象。
张量(tensor) 表示一个由数值组成的数组,这个数组可能有多个维度。
具有一个轴的张量对应数学上的向量(vector);
具有两个轴的张量对应数学上的矩阵(matrix);
具有两个轴以上的张量没有特殊的数学名称。
张量中的每个值都称为张量的 元素(element)
使用 arange 创建一个行向量 x。这个行向量包含以0开始的前12个整数,范围为 $[0,12)$,它们默认创建为整数。也可指定创建类型为浮点数。
123x = torch.arange(12)###tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
张量(沿每个轴的长度)的形状:
123x.shape###torch.Size([12])
张量的大小(size):即张量中元素的总数,即形状的所有元素乘积
12345X = x.re ...
Python精粹
一、基础部分input() 接收用户的输入
nums12temp = input("请输入一个数字") print(temp)
随机数 random 模块
nums12import random #导入random.randint (a, b) #随机a ~b 之间的整数
数据类型
整数长度不受限制
浮点数
精确计算浮点数:decimal
12import decimala = decimal.Decimal('0.1')
E 记法(科学计数法)E的意思是指数,指底数为10,E后边的数字就是10的多少次幂。例如,15 000等于1.5×10 000,也就是1.5×104,E 记法写成1.5e4。
复数x = 1 + 2j 用浮点数存储获取实部:real
12>>>x.real1.0
获取虚部:imag
12>>>x.imag2.0
类型转换int(x): 转换成整数float(x):转成浮点数str():转换成一个字符串:complex(re, im): 转成复数typ ...