自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DXT的博客

Learning...All the blog posts are just study notes。My github: https://github.com/DXT00

  • 博客(248)
  • 收藏
  • 关注

原创 Unity commandbuffer

在渲染不透明物体和天空盒之后,当前图像被复制到一个临时渲染目标中,模糊并设置为全局着色器属性。然后在玻璃物体上的着色器对模糊的图像进行采样,基于法线贴图的UV坐标偏移来模拟折射。这类似于shader GrabPass所做的,除了你可以做更多自定义的事情(在这种情况下,模糊)。

2024-03-31 15:13:38 280

转载 [cg] vulkan ubo 内存对齐

【代码】[cg] vulkan ubo 内存对齐。

2024-03-07 16:09:35 30

原创 [cg] Games 202 - NPR 非真实感渲染

远处 uv会被缩小,如果还用lod0,会变黑--》远处使用mipmap lod高级别的贴图。比如墙上的竖边,白色部分乘以正数,黑色乘以负数,颜色差会进一步拉大--》出现边界效果。通过设置阈值来增加黑色范围,比喻与视线大于60度就开始描黑。中的信息处理(比如normal,depth上找边界)S-->需要在物体外面一圈上,并且是多个面共享的。背面扩大一圈渲染 (疑问:都要双面渲染?阈值化,在某一范围内的颜色,统一成一个值。通过图像找边界,使用Sobel 核过滤。B-->普通边界(不是下面几种的)

2024-03-05 11:48:48 391

原创 [cg] Games202 -- BRDF

brdf f(i,o)描述的是对于一个入射方向的光,有多少能反射出去。

2024-03-04 21:22:56 842

原创 [cg] Games202- SSR(Screen space reflection)

SSR: 反射光线通过rayTracing 与场景物体求交。

2024-02-28 16:20:16 340

原创 [cg] Games202-realtime raytrcing

一种 spatial filtering 方法,通过充分利用 G-buffer 的各种属性作为参考,来控制滤波的核和权重。实际关键就是在判断高频信息属于噪声还是图像信息,而 G-buffer 是光栅化过程生成的完全没有噪声,因此作为滤波的指导是非常有用的。缺点:噪声多的场景中,通过颜色突变无法区分是噪声还是边界。如果两个像素颜色相差不大-->正常高斯核滤波。如果两个像素颜色相差太大-->高斯权重减小。缺点:所有像素都会糊掉,无法保持边缘。优点:通过颜色突变找到图像边界。

2024-02-27 21:39:18 797

原创 GPU RayTracing

参考自:https://github.com/Ubpa/ToyRTX使用三种Texture 记录场景数据1.SceneData2.MatData3.PackData数据:https://docs.qq.com/sheet/DQ2FqdE1jYWZpTldC?tab=BB08J2SceneData:0 1 2 3 4 type mat_id has material child end OT_Group

2021-10-23 17:01:24 353

转载 NVIDIA RTX and DirectX Ray Tracing

转自:https://developer.nvidia.com/blog/introduction-nvidia-rtx-directx-ray-tracing/?utm_source=wechat_session&utm_medium=social&utm_oi=982728699078164480rtx raytracing加速结构:API: BuildRaytracingAccelerationStructure().分两种加速结构1.底层加速结构如三角形.

2021-08-14 20:39:58 290

转载 std::forward

转自:https://riptutorial.com/cplusplus/example/3898/argument-forwardingstd::forward 用于传递一个或者多个参数给函数Example#Template may accept both lvalue and rvalue references usingforwarding reference:template <typename T>void f(T &&t);In this .

2021-08-14 17:24:51 284

转载 Linux ulimit命令

Linux ulimit命令转自:https://www.runoob.com/linux/linux-comm-ulimit.htmlLinux ulimit命令用于控制shell程序的资源。ulimit为shell内建指令,可用来控制shell执行程序的资源。语法ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p &lt

2021-02-28 16:18:58 164

转载 Linux中mprotect()函数的用法

Linux中mprotect()函数的用法转自:https://blog.csdn.net/Roland_Sun/article/details/33728955在Linux中,mprotect()函数可以用来修改一段指定内存区域的保护属性。函数原型如下:#include <unistd.h>#include <sys/mmap.h>int mprotect(const void *start, size_t len, int prot);mprotect()

2021-02-28 15:38:41 2539 1

转载 strace 跟踪进程中的系统调用

转自:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/strace.htmlstrace 跟踪进程中的系统调用strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。6.1. 输出参数

2021-02-28 14:50:22 1081

转载 vim 命令记录

注释块:To comment out blocks in vim:press Esc (to leave editing or other mode) hit ctrl + v (visualblock mode) use the ↑ / ↓ arrow keys to select lines you want (it won't highlight everything - it's OK!) Shift + i (capital I) insert the text you wan.

2020-07-25 10:42:44 130

原创 Linux高性能服务器编程笔记 --Chapter4 HTTP代理服务器

分类:正向代理服务商、反向代理服务器和透明代理服务器正向代理服务器:要求客户端自己设置代理服务器地址。客户的每次请求都将直接发送到该代理服务器,并由代理服务器来请求资源。反向代理服务器:反向代理被设置在服务器端,因而客户端无需进行任何设置。反向代理指用代理服务器接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,内部服务器将得到的结构返回客户端。各大网站通常分区域设置了多个代理服务器,所以不同的地方ping同一个域名可能得到不同的IP地址透明代理服务器 :透明代理只能设

2020-06-23 18:09:03 666

转载 C++11新特性:enable_shared_from_this

转自:https://blog.csdn.net/caoshangpa/article/details/79392878enable_shared_from_this是一个模板类,定义于头文件<memory>,其原型为:template< class T > class enable_shared_from_this; std::enable_shared_from_this 能让一个对象(假设其名为 t ,且已被一个 std::shared_ptr 对象...

2020-06-19 19:48:26 233

原创 Linux高性能服务器编程笔记 -- Chapter1 TCP/IP协议栈

查看服务端口号 sudo cat /etc/serviceskali@kali:/etc$ sudo cat services # Network services, Internet style## Note that it is presently the policy of IANA to assign a single well-known# port number for both TCP and UDP; hence, officially ports have two entri

2020-06-19 17:01:31 366

原创 apue笔记--第13章 守护进程

守护进程(daemon)是长期存在的一种进程-->在系统引导启动时装入,仅在系统关闭时终止该版本的Linux使用一个名为 kthreadd 的特殊内核进程来创建其他内核进程,所以 kthreadd 表现为其他内核进程的父进程创建守护进程 code 13_1/* 创建守护进程output:kali@kali:~/Desktop/Linux Study/Hellos/Chapter13$ ps -ajx |grep 7014 1 7014 701

2020-06-18 12:06:59 225

转载 Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero 简介及对比

1、概论 -- 来自维基的解释/dev/null : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一个EOF。在程序员行话,尤其是Unix行话中,/dev/null 被称为位桶(bit bucket)或者黑洞(black hole)。空设备通常被用于丢弃不需要的输出流,或作为用于输入流的空文件。这些操作通常由重定向完成。/dev/zero : 在类UNIX 操作系统中, /dev/zero 是一个特殊的文件

2020-06-17 15:41:41 406

原创 apue笔记--第11章 线程

比较线程ID:#include <pthread.h>int pthread_equal(pthread_t tid1,pthread_t tid2)获取自身线程ID#include <pthread.h>pthread_t pthread_self(void);

2020-06-17 12:18:52 195

转载 c 函数指针

typedef void Sigfunc(int);Sigfunc *signal(int, Sigfunc *);解释: 这里的形式和常规的不太一样,在常规的typedef中,更类似于:typedef double wage; //创建一个叫wage的别名,其实wage就是double的意思但是在这里,typedef void Sigfunc(int);在这里的意思是定义一种指针类型Sigfunc,它是一种指向函数void (int) 的指针,也就是说Sigfunc表示.

2020-06-14 10:25:25 232

转载 apue笔记-第9章 进程关系

终端登录:init进程知道那些终端设备可用来登录,并且为每个设备生成一个getty进程网络登录:为了使同一个软件技能处理终端登录,又能够处理网络登录,系统使用了一种称为伪终端(pseudo terminal)的软件驱动程序。BSD登录中,有一个inetd进程-->等待大多数网络连接。inetd等待TCP/IP连接请求到达主机,当一个连接请求到达时,执行一次fork,然后生成的子进程exec执行适当的程序。进程组pid_t getpgrp()获取进程组id..

2020-06-11 21:12:34 164

原创 apue笔记-第8章 进程控制

swapper 进程(系统进程):ID = 0,只负责调度进程,并不执行磁盘上的任何程序init 进程:ID = 1,负责读取与系统有关的初始化文件。init进程不会终止。它是一个普通的用户进程,以超级用户特权运行。/sbin/init...

2020-06-11 10:54:57 168

转载 关于%*.*s

小数点.后“*”表示输出位数,具体的数据来自参数表printf格式字符串中,与宽度控制和精度控制有关的常量都可以换成变量,方法就是使用一个“*”代替那个常量,然后在后面提供变量给“*”。同样,小数点.前也可以添加*,也要用户输入一个位宽值来代替,表示输出的字符所占位宽。也就是说,前面定义输出总宽度,后面定义输出字符个数。举例:#include <cstdio> #include <iostream> int main() {

2020-06-09 16:49:04 147

转载 Kali google 翻译

转自:https://www.youtube.com/watch?v=UJ5xpOmnkTo下载google 翻译sudo apt install translate-shell查看可以翻译的语言kali@kali:~/Downloads/youdao-dict_1.1.0-0_amd64$ trans -R┌───────────────────────┬───────────────────────┬───────────────────────┐│ Afrikaans .

2020-06-09 15:36:23 1029

原创 Kali 安装

1.下载vmware:https://www.vmware.com/my/products/workstation-player/workstation-player-evaluation.html2.下载kali:https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/安装vmware后看到多了VMware两个虚拟链接使用VMware的好处: windows和Linu...

2020-06-09 15:29:23 717

转载 Real-time RTX RayTracing 1

Ray tracing 加速结构:

2020-06-08 15:29:33 289

原创 apue 笔记 -第7章 进程环境

第七章 进程环境内存布局通过size 查看 text段,data段,bss段大小kali@kali:~/Desktop/Linux Study/Hellos$ size /usr/bin/cc text data bss dec hex filename 757686 8528 14512 780726 be9b6 /usr/bin/cc获取环境变量 getenv#include <stdlib.h>#inclu

2020-06-04 12:19:38 203 1

转载 由highmap计算法向量

转自:Calculate Normals from HeightmapFrom vector calculus, the normal of a surface is given by thegradient operator:A height maph(x, y)is a special form of the functionf:For a discretized height map, assuming that the grid size i...

2020-05-14 14:38:26 259

转载 c++ std::vector 使用Erase–remove idiom删除特定的value

wiki: Erase–remove idiom一般删除vector中的某个值,需要遍历整个vector找到该值的下标再erase.采用erase-remove方式可以避免多次后续元素前移These algorithms do not remove elements from the container, but move all elements thatdon'tfit th...

2020-05-08 12:16:26 648

原创 [BlackPearl引擎开发记录 6] --ImGui

完整代码:https://github.com/DXT00/LearnOpenGL_study/tree/1977d59c505868f63f718cb7d8d22c3f5176cd69ImGui selectable 菜单:const char* entityItems[] = { "Empty","PointLight","SpotLight","IronMan","Cube" ...

2019-10-30 17:04:03 1391

原创 [BlackPearl引擎开发记录 4] ---dynamic_pointer_cast 必须是多态类才能转换

类之间必须具有多态属性:即至少含有一个虚函数(非析构虚函数)!!错误例子:#include<iostream>#include<memory>#include<vector>#include<string>class Manager{public: Manager(); ~Manager();private:};...

2019-10-29 16:57:54 247

原创 c++ learning -- template 泛型编程

参考书籍:effective c++ 条款43面向对象编程:显示接口 + 运行时多态(哪一个virtual函数被绑定 - 发生在运行期)泛型编程 :隐式接口 + 编译时多态 (哪一个重载函数被调用 - 发生在编译期)template注意点1:子类不能顺利的调用模板化基类的函数Example:#include<iostream>class ...

2019-10-25 11:12:30 262

原创 [BlackPearl引擎开发记录 3] -- 对象析构注意点

记录一下今天写的bug = =:析构顺序不正确导致abort()异常 (析构了栈上的变量,这个变量含有生命周期比他长的类的成员变量)代码如下:class EntityTestLayer :public BlackPearl::Layer {public: EntityTestLayer(const std::string& name, BlackPearl::SystemM...

2019-10-24 16:05:21 218

原创 [BlackPearl引擎开发记录 2] Visual stidio 定位内存泄漏 --- 使用CTR library 定位内存泄漏

参考:https://docs.microsoft.com/en-us/visualstudio/debugger/finding-memory-leaks-using-the-crt-library?view=vs-2017定位 new 分配的内存泄漏位置:1.使用宏定义:输出内存泄漏的文件以及行数#ifdef _DEBUG#define DBG_NEW new ( _NORM...

2019-10-24 12:28:11 179

原创 [BlackPearl引擎开发记录 1] error LNK2005---static 变量定义放在.h文件导致的!

注意:static变量的定义最好放在.cpp文件,而不是.h文件否则会出现链接错误!static变量只初始化一次,如果多个类都包含这个含有static初始化的.h文件,就会出现重定义错误(error LNK2005)!!比如:BaseComponent.h#pragma oncenamespace BlackPearl { /** * Base component c...

2019-10-24 09:49:44 169

原创 c++ learning -- reinterpret_cast类型转换

参考:《More effective c++》条款2reinterpret_cast 用于函数指针类型转换:例子:把 int dosonething()函数指针强制转换为 void (*FuncPtr) :#include <iostream>typedef void(*FuncPtr)();FuncPtr funcArray[10];void x...

2019-10-16 19:36:32 194

转载 C/C 为什么static变量只初始化一次

转自:http://yuanyuanba.com/forum.php?mod=viewthread&tid=768class F {public: int Famliy(int a) { static int famliy = a; std::cout << "in Famliy famliy:" << famliy << std::...

2019-10-15 21:17:11 8081

原创 [BlackPearl引擎开发记录 0]LearnOpenGL_study -- 游戏引擎编译与链接 ,添加ImGui

完整代码:https://github.com/DXT00/LearnOpenGL_study/tree/dda2e1477666b16cb0d7e3428f68303450103ff4修改Project名字为BlackPearl --->static lib 作为游戏引擎添加游戏Demo :SandBox调用 BlackPearl添加 Layer层,Sanbox游...

2019-10-12 17:17:33 240

转载 OpenGL 纹理单元 纹理目标 理解 glActiveTexture glBindTexture

可以这样简单的理解为:显卡中有N个纹理单元(具体数目依赖你的显卡能力),每个纹理单元(GL_TEXTURE0、GL_TEXTURE1等)都有GL_TEXTURE_1D、GL_TEXTURE_2D等,如下struct TextureUnit{ GLuint targetTexture1D; GLuint targetTexture2D; GLuint targetTe...

2019-09-29 11:07:46 837

转载 LearnOpenGL_study -- 平行光,点光源,聚光源

平行光只需要定义方向,不存在位置的问题,所有的物体都会接收到点光源只需要定义位置,方向由点光源位置减去物体位置决定。注意:点光源存在衰减问题,漫反射,镜面反射,环境光三个分量都需要乘以衰减系数!下面这个表格显示了模拟一个(大概)真实的,覆盖特定半径(距离)的光源时,这些项可能取的一些值。第一列指定的是在给定的三项时光所能覆盖的距离。这些值是大多数光源很好的起始点,它们由Ogre3D的W...

2019-09-21 14:09:49 651

空空如也

空空如也

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

TA关注的人

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