自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (12)
  • 收藏
  • 关注

原创 FMViewer三维模型浏览器

FMViewer 能够浏览FBX, OBJ, DAE 三维格式的文件和JPG,PNG,DDS 等图片文件,目前功能还不太完善,作为一款简单的模型浏览器还是能用起来的。下载地址:链接:https://pan.baidu.com/s/1H4lS-iKoTqroq6V-xiwpkw提取码:f3ig...

2020-04-20 00:40:45 1529 1

原创 OSG 渲染引擎特性与架构

OSG 作为老牌的开源渲染引擎之一,有一定的用户群体,不少个人、企业、科研机构都在使用OSG进行开发。随着不少商业渲染引擎的开源与准门槛的降低(比如Unity3D 授权费用比较低,中小企业甚至个人都能负担的起授权费用,UE开源且准门槛也比降低了不少),OSG, OGRE这样的开源渲染引擎正在逐步走向没落。虽然OSG同样走向没落,但对于自研引擎或基于OSG的二次开发的商业应用,OSG还有很大的参考...

2019-03-20 09:37:29 5444

原创 OSG 物理渲染

目前产出了些成果,材质还不够精细 :Demo 模型浏览器 下载链接链接: https://pan.baidu.com/s/1H4lS-iKoTqroq6V-xiwpkw 提取码: f3ig

2019-01-08 16:44:14 1509 2

原创 WebGPU 纹理与纹理类型基础 (D3D对纹理的描述比较详细)

文中对纹理的概念做了详细讲解,介绍了一维纹理,二维纹理,三维纹理,纹理数组的概念和逻辑表示。

2023-06-09 14:50:41 1281 2

原创 WebGPU 之 GPURenderBundle

GPURenderBundle 的使用技术

2023-05-30 14:58:56 212

原创 WebGPU 编程模型之时间轴的概念

webgpu 时间线

2023-05-30 10:46:56 743

原创 WEBGPU 纹理格式的功能

纹理格式

2023-04-23 09:54:09 415

原创 10 WGSL 入口点

WGSL 函数入口点

2023-02-07 10:38:43 561

原创 9 WGSL 函数

WGSL函数

2023-02-06 17:17:52 392

原创 7 WGSL 表达式 Expressions

WGSL 表达式

2023-02-06 15:17:01 344

原创 WGSL 纹理 和 采样器类型

WGSL 的纹理 和 采样器类型。

2023-02-06 14:16:50 527

原创 WGSL 内存和内存视图

WGSL内存和内存视图。

2023-02-03 17:58:07 919

原创 6 WGSL 变量和值的声明

WGSL变量声明语法

2023-02-02 18:37:20 513

原创 WGSL 内置函数(built-in functions)

WGSL 内置函数

2023-02-02 10:35:47 341

原创 从WEBGL 迁移到 WEBGPU

本文介绍从webgl 迁移到 webgpu的要点,指出了webGL 与 WebGPU 在着色器方面, 顶点属性,资源传递,渲染管线等方面的不同。

2023-01-13 17:32:07 1349

原创 What is a Swap Chain?

SwapChian 概念

2022-12-04 09:58:33 107

转载 how to calculate pixel size

计算包围体投影到屏幕空间的像素大小的算法。

2022-11-11 00:08:40 174

原创 BIM中使用vulkan作为显示引擎底层图形API

Vulkan 在CAD 中的使用

2022-06-29 15:15:46 456

转载 Writing an efficient Vulkan renderer

作者讲述构建vulkan 渲染器经验之谈,非常值得看。

2022-05-26 10:06:34 765

转载 Multi-Threading in Vulkan

Quick backgroundVulkan was created from the ground up to be thread-friendly and there's a huge amount of details in the spec relating to thread-safety and the consequences of function calls. In OpenGL, for instance, the driver might have a number of back

2022-04-20 10:28:26 155

转载 VK_KHR_dedicated_allocation unofficial manual

IntroductionThis is an unofficial manual for a Vulkan extension "VK_KHR_dedicated_allocation". I've written it because I couldn't find anything like this on the Internet, while understanding all the logic involved in its usage based on Vulkan specificati

2021-09-15 15:15:47 415

原创 Vulkan 内存

内存分类Vulkan 的内存分为两类: 宿主机内存 和 设备内存。两种内存的特点:宿主机内存 访问速度慢 ,但可分配空间大。 设备内存 直接对设备可见的,可分配空间小,但访问速度快。宿主机内存Vulkan 通过宿主机内存来存储API 的内部数据结构, Vulkan 允许程序控制宿主机端的内存分配,宿主机的内存管理通过以下数据结构来完成:typedef struct VkAllocationCallbacks { Void* ...

2021-09-03 16:41:57 535

转载 Vulkan层的简要说明

Vulkan has a lot of really nice concepts, but one that hasn't had as much attention until now is the layer system that's built into the API ecosystem.For other APIs you generally link directly against a runtime, which is entirely opaque and calls into th

2021-08-27 15:10:30 2034

原创 Vulkan 简介

序言Vulkan 的设计理念 开放性 和 轻量化Vulkan 将 “绘制物体” 描述成为多个不同缓存和多组不同的流水线之间的关联和组合。Vulkan 将实现引擎在底层接口兼容性测试和调试工作部分转移到了算法封装和框架设计上。vulkan 的介绍 概念 术语 ,与 openGL 的不同点vulkan 的原始概念由AMD 的 Mantle API 设计和实现的, AMD将 Mantle 的源码贡献给 khronos 组织, 而后 khronos 组织发布了vulkan。..

2021-08-23 17:13:59 15154

原创 自旋锁(spin lock)与互斥量(mutex)的比较

下面摘录一些关于C++当中自旋锁(spin lock)与互斥量(mutex)的比较自旋锁是一种非阻塞锁,也就是说,如果某线程需要获取自旋锁,但该锁已经被其他线程占用时,该线程不会被挂起,而是在不断的消耗CPU的时间,不停的试图获取自旋锁。互斥量是阻塞锁,当某线程无法获取互斥量时,该线程会被直接挂起,该线程不再消耗CPU时间,当其他线程释放互斥量后,操作系统会激活那个被挂起的线程,让其投入运行。两种锁适用于不同场景:如果是多核处理器,如果预计线程等待锁的时间很短,短到比线程两次上下文切换时

2021-06-10 10:02:11 1412

原创 Issue with glBindBufferRange() OpenGL 3.1

Issue with glBindBufferRange() OpenGL 3.1My vertex shader is ,uniform Block1{ vec4 offset_x1; vec4 offset_x2;}block1;out float value;in vec4 position;void main(){ value = block1.offset_x1.x + block1.offset_x2.x; gl_Pos

2021-05-21 17:18:01 196

翻译 GLSL std140布局规则

标准uniform块布局默认情况下,包含在uniform block 中的uniform 从 buffer storage 中的提取依赖与实现方式。应用程序可以通过OpenGL提供的查询函数来查询uniform 的偏移量。在着色器中通过 layout 布局标识符 来控制 uniform 在uniform block中的布局。std140 布局规则可以使我们能够推导出uniform 在 uniform block 中的偏移量。如果一个 unform block 声明在多个着色器中并连接成单独的程序,除非

2021-04-26 11:55:31 3282 7

原创 What is the difference between framebuffer and image in Vulkan?

Answers:VkFramebuffer + VkRenderPass defines the render target.Render pass defines which attachment will be written with colors.VkFramebuffer defines which VkImageView is to be which attachment.VkImageView defines which part of VkImage to use.VkImage

2021-02-05 16:03:43 201

原创 Filament渲染引擎剖析 之 通过图元构建几何体

使用filament渲染图元什么是图元filament可绘制的图元类型构建图元的工具VertexBufferIndexBufferPrimitive什么是图元图元是构成图形实体的最小单元,可见物体的表面可以由数量不等的三角形拟合而成,常见的图元类型有点、线、三角形等,无论多么复杂的物体外观,一般都可以用这三类基础图元拟合而成。OpenGL 常见的图元类型: 点、线、条带线、循环线、三角形、三角形条带、三角形扇面。在OpenGL早期版本中多边形与四边形也是OpenGL 基本图元类型,但在OpenGL3.

2021-01-04 17:32:40 2024

原创 OpenGL 采样器的比较模式

来自flyfish|已发表2020-10-27深度纹理可以通过两种模式进行采样, 第一种是按传统的纹理采样模式直接采样来获取深度值,这将会返回一个单浮点数vec4 类型的值。也可以使用比较模式(comparison mode) 模式来采样深度纹理。使用比较模式时,我们需要指定一个参考值(reference value) , 该参考值与从深度纹理中采样的深度值进行比较,为了使参考值与采样的深度值进行比较,我们还需要设置一个比较函数(comparison function),比较结果只有R值是比较结果。..

2020-10-27 15:00:40 1000

原创 从OpenGL 矩阵中提取裁剪平面

来自flyfish|已发表2020-09-29我们假设 顶点 列向量 v =(x y z w=1) 和 M 是 4X4 的是变换到裁剪空间的矩阵矩阵(column major projection matrix), 将v 变换到 clip space v’ = Mv , 如下OpenGL 在测试顶点可见性时,是根据:一般视锥体分别由 左、右、底、顶、远、近、六个裁剪平面包围而成:-w’ < x’ x’在左裁剪平面正半空间内 x’ < w’ x’在右..

2020-09-29 18:14:19 524

原创 区分C++的常量指针与指针常量

我们知道const 修饰的变量作为常量来看待, 所谓常量就是赋值后不能被改变的量, const 修饰的变量或指针有时很难区分其类别,在这里推荐一种简单的方法来区分到底是常量指针 还是 指针常量。这里我们先搞清楚 何为常量指针 和 指针常量:常量指针: 指向常量的指针,由于指向的是常量,当用指针解引用来修改被指对象的值时,是无法完成操作的。指针常量: 这个词可以参考 const int 或 int const , 我们说 const int 是整形常量 , 当修饰指针时,我们就说指针常量。首先

2020-08-12 15:02:21 265

原创 Filament 渲染引擎剖析 之 ECS模式

一、什么是 ECS 模式ECS Entity-Component-System(实体-组件-系统) 是基于组合优于继承原则的一种模式,每一渲染对象都是一个实体,每个实体由一个或者多个组件构成,每个组件仅包含该组件需要关注的数据,而系统来处理这些实体的集合,只有逻辑部分,不存在状态。ECS 的优势:(1) 容易添加新的复杂的实体类型显而易见,将需要的组件整合起来就会形成一个新的实体类型。(2) 容易定义新的实体数据;、实体数据是在组件中定义的,只需要扩充新的组件很容易的定义新的实体属性。(3)

2020-07-07 15:35:23 3071

原创 加载OpenGL函数

加载OpenGL函数是创建OpenGL上下文后的一项重要的初始化工作,需要使用平台特定的函数查询函数指针,且不同的版本有不同的语义。获取平台特定的OpenGL函数1.Window我们使用 wglGetProcAddress 来查询函数指针。该函数接收一个ASCII字符串作为参数,可以查询 OpenGL 函数 和 平台特定的 WGL 函数。这个函数只能在有效的上下文(OpenGL context) 上才能执行,返回的函数指针也是上下文相关的。Windows 文档指出查询出的函数可以在另外的上下文中执行

2020-05-20 18:33:09 770

转载 git 版本管理

Git常用命令一、本地操作:1.其它git init:初始化本地库git status:查看工作区、暂存区的状态git add :将工作区的“新建/修改”添加到暂存区git rm --cached :移除暂存区的修改git commit :将暂存区的内容提交到本地库tip:需要再编辑提交日志,比较麻烦,建议用下面带参数的提交方法git commit -m “提交日志” :文件从暂...

2020-04-29 10:34:02 119

原创 Filament 渲染引擎剖析 之 FrameGraph 2 动态构建渲染管线

一、渲染通道的设计与实现1 Fostbite 构建FrameGraph的准则我们先看下Fostbite 构建FrameGraph原则,包括三个阶段:设置阶段 setup、编译阶段compile、执行阶段execute。2 Filament使用FrameGraph动态构建渲染管线流程如下图所示:如果不考虑渲染通道的并行计算与同步问题,FrameGraph 的实现还是比较直观的。实现 ...

2020-04-21 23:26:39 1956 1

原创 Filament 渲染引擎剖析 之 FrameGraph 1 虚拟资源的定义与创建

Filament 使用了可扩展渲染管线(FrameGraph)来组织渲染通道和管理渲染资源,网上也搜了下可扩展渲染管线的相关的文章,一般认为可扩展渲染管线是次时代渲染引擎应该具备的比较先进的管线组织架构方式。所以就硬着头皮读了读Frostbite 对FrameGraph 的宣讲PPT,看完后觉得似懂非懂,爱钻牛角尖的个性也不适合全局看问题,总爱在细节上卡壳,卡住也就不管下面的原理了(应该...

2020-04-20 18:33:36 3631 1

原创 OpenGL 编程指南中 关于 uniform block 绑定错误解释

这里捋顺下uniform block 的使用方法:(1) 首先,我们在shader 中定义uniform blcok ,例如:layout (std140) uniform Matrices{ mat4 projection; mat4 view;};(2) 着色器程序连接后,获取 uniform block 的索引GLunit uboIndex,;uboInde...

2020-04-03 12:10:08 396

原创 管理数据库事务

一、什么是事务事务是对数据库执行的一个操作单位, 以逻辑顺序完成的工作单元或工作序列, 由数据操作语言(DML)完成的。 任何指定的事务(DML 语句组)都必须作为一个整体来完成, 否则其中任何一条语句都不会完成。特点:事务都有开始 和 结束; 事务可以被保存 或者 撤销; 如果事务在中途失败, 事务中的任何部分都不会被执行;二、事务控制事务控制命令只与 DML 命令 ...

2020-01-22 10:46:57 268

原创 gl_FragCoord 的含义

gl_FragCoord 表示当前片元着色器处理的候选片元窗口相对坐标信息,是一个 vec4 类型的变量(x, y, z, 1/w), 其中 x, y 是当前片元的窗口坐标,OpenGL 默认以窗口左下角为原点, 在 着色器中通过布局限定符可以重新设定原点,比如窗口左上角为原点origin_upper_left,窗口大小由 glViewport() 函数指定。x, y 默认是像素中心 而非 整...

2020-01-06 18:02:03 14360 12

FMViewer 模型文件 exterior.7z

请到百度网盘下载 链接:https://pan.baidu.com/s/1H4lS-iKoTqroq6V-xiwpkw 提取码:f3ig

2019-05-23

FMViewer 模型浏览器

FMViewer 是一款基于OSG开发的可查看FBX , OBJ, DAE等格式的文件浏览器,可以在场景中漫游。 模型以毫米为单位,真实尺寸建模,也能够浏览DDS, PNG ,JPG 格式图片, 采用物理光照模型,能渲染出更真实的效果。 FMViewer 可导出BJX格式文件,对原创资源加以保护,可添加注释资源,并通过PPT 记录观察视角备注等信息。 最新版本可到百度云盘下载: https://pan.baidu.com/s/1H4lS-iKoTqroq6V-xiwpkw 提取码: f3ig

2019-05-23

OpenGL 编程指南 配套源码

OpenGL 编程指南最新源码,通过CMake编译工具编译,傻瓜式配置,一键生成:)--

2019-04-30

介绍卷积阴影原论文(Convolution shadow maps)

卷积阴影(CSMs)原论文,ESMs也是起源于CSMs,比较有参考价值。

2019-03-08

介绍指数阴影原论文(Exponential Shadow Maps)

指数阴影论文,研究高效阴影参考文档,是实现自己渲染引擎不错的参考资料。

2019-03-08

PSSM阴影 原论文

PSSM阴影原论文,高效大规模场景渲染使用。 可以供图形渲染开发人员学习研究使用。 英文版,但论文讲解透彻,原理也相对简单,容易看懂。

2018-10-30

Nginx高性能Web服务器实战教程(完整清晰带目录)

清华大学出版社,完整清晰带目录。 Nginx是目前备受关注的一个高性能HTTP和反向代理服务器,具有简单、灵活的配置和极高的执行效率。本书面向Linux运维方向的用户或具备某一类编程语言c、PHP 、Java基础的读者,旨在使其快速掌握Nginx的配置与应用,学会搭建高性能的Web 服务器。 全书分为8章,主要内容包括VMware虚拟机的使用、Linux 入门、正则表达式、HTTP协议、Nginx安装与配置、访问控制、日志管理、虚拟主机、Web服务器搭建、反向代理、负载均衡、缓存以及一些常用模块和应用(包括调试输出、网页压缩、重写、重定向、防盗链、HTTPS 等)。第8章还着重介绍了Nginx的配置优化、LNMP分布式集群和高可用方案的部署,目的是帮助读者将Nginx 应用到复杂的服务器架构中,对所学知识进行巩固和提高。 本书是一本Nginx 的入门书籍,适合作为高等院校本、专科计算机相关专业的教材,也可作为Nginx爱好者的参考书

2018-09-13

Real Time Rendering 3rd edition

实时渲染第三版,英文原版。计算机图形学 游戏开发经典图书。

2018-07-27

托马斯微积分

微积分资料, 托马斯微积分第十三版教程,经典教程。这是PDF原版,内容相当的清晰。

2018-02-11

OSG三维渲染引擎设计与实践

《OSG三维渲染引擎设计与实践》——深入学习OSG的辅助教程,随着Unity3D等各大游戏引擎的开源及门槛降低,OSG的发展已趋于颓势,但其在虚拟现实行业应用比较广,仍有一定的学习参考价值。 本打算,免积分下载,CSDN 只能最少要设定2积分才能够下载。

2018-02-09

空空如也

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

TA关注的人

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