fatcat123的博客

私信 关注
Night_Aurora
码龄13年

渲染引擎工程师

  • 49,196
    被访问量
  • 41
    原创文章
  • 110,092
    作者排名
  • 42
    粉丝数量
  • 目前就职 ZWSOFT
  • 于 2007-12-24 加入CSDN
获得成就
  • 获得23次点赞
  • 内容获得17次评论
  • 获得64次收藏
荣誉勋章
TA的专栏
  • Vulkan
    1篇
  • Filament
    6篇
  • C++
    2篇
  • 三维模型浏览器
    1篇
  • Web
    2篇
  • git
    1篇
  • 数据库
    1篇
  • OpenSceneGraph
    16篇
  • 建站
  • G3D
    1篇
  • OpenGL
    21篇
  • 渲染
    17篇
  • 基于物理渲染
    3篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

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
原创
17阅读
0评论
0点赞
发布博客于 1 月前

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

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

OpenGL 采样器的比较模式

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

从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’在右..
原创
77阅读
0评论
0点赞
发布博客于 5 月前

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

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

Filament 渲染引擎剖析 之 ECS模式

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

加载OpenGL函数

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

git 版本管理

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

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

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

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

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

FMViewer三维模型浏览器

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

FMViewer 三维模型浏览器

FMViewer 是一款基于物理渲染能够浏览FBX\OBJ\DAE三维文件格式的模型浏览器和场景编辑器,也能够预览多种格式的图片文件。用户可以三维文件经过编辑后保存为BJX文件格式,保护自己的版权。 链接:https://pan.baidu.com/s/1H4lS-iKoTqroq6V-xiwpkw 提取码:f3ig 安装文件大于200M不能上传,也不能分割上传,请到 我的网盘进行下载。
001
发布资源于 10 月前

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

这里捋顺下uniform block 的使用方法:(1) 首先,我们在shader 中定义uniform blcok ,例如:layout (std140) uniform Matrices{ mat4 projection; mat4 view;};(2) 着色器程序连接后,获取 uniform block 的索引GLunit uboIndex,;uboInde...
原创
78阅读
0评论
0点赞
发布博客于 1 年前

管理数据库事务

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

gl_FragCoord 的含义

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

WebGL在线模型浏览器

前几年做的基于WebGL在线模型浏览器,用的threejs引擎,可以在各方向观察、动态剖切、添加热点。demo 网址:flyfish.aukbest.com
原创
333阅读
0评论
0点赞
发布博客于 2 年前

基于Token的WEB后台认证机制

几种常用的认证机制HTTP Basic AuthHTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽量避...
转载
66阅读
0评论
0点赞
发布博客于 2 年前

History of hardware tessellation

History of hardware tessellationPosted on2010-09-29byDaniel RákosDISCLAIMER:This article was migrated from the old blog thus may contain formatting and content differences compared to th...
转载
105阅读
0评论
0点赞
发布博客于 2 年前

OpenGL 立即模式 与 保留模式的区别,概念不是很清晰的可以看看。。。

What does “immediate mode” mean in OpenGL?One example of "immediate mode" is usingglBeginandglEndwithglVertexin between them. Another example of "immediate mode" is to useglDrawArrayswith a...
转载
510阅读
0评论
0点赞
发布博客于 2 年前

OSG 高效渲染 之 多线程模型与渲染

这里以OSG多线程渲染为例,谈谈OSG渲染引擎多线程渲染模式,再说说哪里有点“过时”了需要改进。先谈点题外话,曾经看到知乎上一篇关于游戏引擎的设计讨论的文章,有位“大大”提出游戏引擎的设计关键在于架构设计,这是灵魂,一味强调画质如何,shader , 特效算法写的如何好,渲染的怎么真实漂亮那是舍本逐末,这些都可以照着“Real-TimeRendering” 或 是相关的 paper 实现即可...
原创
1323阅读
0评论
0点赞
发布博客于 2 年前

Filament 渲染引擎剖析 之 多线程渲染 2

Filament 渲染一帧流程Filament 是一款针对多核硬件系统开发的并行渲染引擎,内部通过多线程的合理调度,尤其在android移动平台上针对大小核心架构做了很多优化设计,比如通过设置线程亲和力,大核心执行繁重的渲染任务,每个小核心上执行一个工作线程对场景对象做排序、剔除等工作,这一模型极大的提高了系统的渲染效率。从多线程渲染架构来讲, Filament 多线程的组织方式还是比较先进的...
原创
1030阅读
0评论
0点赞
发布博客于 2 年前

Filament 渲染引擎剖析 之 创建渲染对象 1

Filament 渲染对象的创建Filament 将实体(Entity)属性看成组件(component)的形式,实体可以是相机,光源,可绘制实体, 全局光照(IBL)实体等类型。一个场景包含最多、最主要的是可绘制实体对象。可绘制实体主要包含两种属性 可绘制属性Renderable 和 变换属性Transform,Renderable 与 Transform 被看作两种组件。Filament ...
原创
802阅读
4评论
0点赞
发布博客于 2 年前

C++ 并行编程之memory_order

typedef enum memory_order { memory_order_relaxed, // 不对执行顺序做保证 memory_order_acquire, // 本线程中,所有后续的读操作必须在本条原子操作完成后执行 memory_order_release, // 本线程中,所有之前的写操作完成后才能执行本条原子操作 memory...
原创
91阅读
0评论
0点赞
发布博客于 2 年前

增加场景真实感

最近看了看sketchfab,一个以模型内容为主的展示和交易平台,感觉它的web端渲染效果做的比较不错,有些达到了照片级别的显示效果,我就研究下了渲染管线及相关后处理,它采用了OSGJS作为模型浏览器,说实在的,OSGJS 从渲染效果上比不过现在如日中天的threejs,但OSGJS渲染引擎架构比较出色,它是基于OSG架构开发的,模块划分、调用、层次关系更合理,其它的web端显示引擎架构多数都比较...
原创
248阅读
0评论
0点赞
发布博客于 2 年前

Radiance and Luminance

Radiance and LuminanceJune 15, 2018byElectrical4UThe radiant flux emitted from a point source in a certain direction per unit solid angle per unit projected area perpendicular to the specified d...
转载
206阅读
0评论
0点赞
发布博客于 2 年前

各种反走样介绍与选取

What is Anti-Aliasing? (& What Does it Mean for Gamers?)ByBrent Hale· UpdatedJanuary 30, 2019Leave a CommentNeed a quick primer on anti-aliasing? In this guide, we’ve covered what ant...
转载
458阅读
0评论
0点赞
发布博客于 2 年前

OSG 后处理局限性

OSG 大部分插件及Demo都停留在固定管线阶段,虽然离屏渲染支持的比较完善,而且最近也加了一些新特性,比如支持UBO, 图像原子操作等,但后处理渲染还是有不少局限性:一、 延迟渲染+ 正向渲染的局限性如果对架构不做大的调整,不同渲染通道对实体的拣选只能靠实体掩码做过滤,多通道情况下效率和灵活性比较低,一帧要遍历多次。二、基于多重采样的反走样处理的局限性由于采用的Resove 模式...
原创
312阅读
2评论
0点赞
发布博客于 2 年前

基于物理相机渲染 第一篇 EV & light condition(相机曝光值与光照情况关系)

第一节 基于物理相机曝光方案一套完善的基于物理渲染的系统要有三部分组成:(1)基于物理的材质(Physically material);(2)基于物理的光照(Physically based lighting);(3)基于物理的相机(Physically based camera);我们基于物理的相机(camera) ,根据实际的光照情况选用合适的相机参数设置来曝光(expose)场景,...
原创
1003阅读
0评论
0点赞
发布博客于 2 年前

GLSL Versions

GLSL Versionsmattdesl edited this pageon 13 Sep 2013·15 revisionsIntroYou can use the#versioncommand as the first line of your shader to specify GLSL version:#version 120void main() {...
原创
44阅读
0评论
0点赞
发布博客于 2 年前

Computing Alpha Mipmaps

这篇文章主要是解决使用带alpha 通道的贴图渲染草、树这类对象时,由于mipmap 的原因,更高一级的mipmap 贴图变得透明会导致当对象缩小时,会出现渲染对象变得光秃了或不可见了。。。Computing Alpha Mipmaps原文链接: Computing Alpha MipmapsA little problem that we had when we started to...
转载
120阅读
0评论
0点赞
发布博客于 2 年前

answer: GL_ALPHA/GL_LUMINANCE/GL_INTENSITY

GL_ALPHA/GL_LUMINANCE/GL_INTENSITYThe difference between the three single-component texture formats, GL_ALPHA, GL_LUMINANCE and GL_INTENSITY, is in the way the four-component RGBA color vector is g...
原创
272阅读
0评论
0点赞
发布博客于 2 年前

How to Create Your Own HDR Environment Maps

做PBR 渲染连这些图是怎么来的都不知道,真是汗颜,哎,找了个sketchfab教程,哪天也试试。原文链接如何制作HDRI 环境纹理贴图How to Create Your Own HDR Environment MapsBACK TO OVERVIEWTUTORIALS6 April 2016HDR environment maps are an amazing way...
转载
159阅读
0评论
0点赞
发布博客于 2 年前

FMViewer 模型文件 exterior.7z

请到百度网盘下载 链接:https://pan.baidu.com/s/1H4lS-iKoTqroq6V-xiwpkw 提取码:f3ig
7z
发布资源于 2 年前

FMViewer 模型浏览器

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

OSG OIT 顺序无关透明绘制(PPLL_OIT, WB_OIT) 实现及注意事项

这段时间研究了一下顺序无关的半透明实体绘制实现方法,顺便完善了OSG显示引擎半透明实体绘制部分,看了看相关资料,正确性、效率最好的是基于权重函数的混合算法和GPU端链表法,还有个基于矩的数学方法,绘制的效果比基于权重函数的混合算法效果更好,太复杂,俺也懒得看了,看也看不懂,只有DX代码,放弃了。两种方法存在的问题罗列一下,给其他有兴趣实现的OIT透明绘制的朋友做个参考,本人比较水:)。先来张...
原创
2961阅读
1评论
3点赞
发布博客于 2 年前

关于Fragment output 数据格式

Fragment outputQ:The shader outputs to an 8 bit unsigned integer texture and a half-float RGBA (ie 16 bit) texture.how do I describe these in the glsl layout command in the fragment shader?A:...
原创
69阅读
0评论
0点赞
发布博客于 2 年前

OpenGL 片元着色及输出

片元着色器处理光栅化后的产生片元并输出一系列的颜色和一个深度值。片元着色器是图元光栅化后,OpenGL显示管线的下一阶段,被图元覆盖的像素将产生输出。每一个片元着色器都具有窗口空间的位置和一系列在前一阶段顶点着色器输出的逐顶点插值。片元着色器将输出一个深度值(depth value 范围 0 - 1),也可能包含一个模版值(看定义的深度缓冲格式是否包含模版 GL_DEPTH_COMPONENT...
原创
663阅读
0评论
0点赞
发布博客于 2 年前

OSG 渲染剖析 之 Geometry中使用VBO、VAO

在OSG 渲染剖析 之 Geometry VBO 生成中,我们分析了OSG 的几何数据如何转换成OpenGL 对应的相数据, 及相关实现类,这一节我们看看,Geometry中的几何数据是怎样被渲染出来的。我们先认识一下VBO,VAO的数据派发及绑定状态管理工具类:class OSG_EXPORT VertexArrayState : public osg::Referenced{ ...
原创
1285阅读
0评论
1点赞
发布博客于 2 年前

OSG 渲染剖析 之 Geometry 的 VBO生成

对于一个渲染引擎的渲染过程,我们一般关心的是渲染引擎如何组织、绘制场景对象。OSG 通过状态树与渲染树对渲染节点进行分组、排序与渲染。我们先抛开OSG 事件更新与处理等宏观渲染过程,这里我们从更细的角度研究OSG 是如何将场景对象数据与状态转换成OpenGL 具体实现。如果让你设计一个渲染引擎渲染场景对象,你通常会怎么做?我们一般都会这样做:首先设计场景对象的组织与数据封装类,将数据从文件或程...
原创
555阅读
0评论
2点赞
发布博客于 2 年前

OpenGL 编程指南 配套源码

OpenGL 编程指南最新源码,通过CMake编译工具编译,傻瓜式配置,一键生成:)--
zip
发布资源于 2 年前

Normal Mapping Without Precomputed Tangents

Normal Mapping Without Precomputed TangentsPosted on2013-01-20bychristianThis post is a fol­low-up to my 2006 ShaderX5arti­cle [4] about nor­mal map­ping with­out a pre-com­put­ed tan­gent bas...
转载
393阅读
0评论
0点赞
发布博客于 2 年前

OSG 渲染引擎特性与架构

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

正交矩阵与透视矩阵 裁剪变换后的注意事项:

对于正交投影,裁剪空间本身也是标准设备坐标空间,对于透视投影,裁剪空间变换到设备空间需要做透视除法。在阴影投影计算中,对于正交投影,光源MVP* V 就是规范化坐标系下的坐标。正交投影透视投影...
原创
340阅读
0评论
0点赞
发布博客于 2 年前

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

卷积阴影(CSMs)原论文,ESMs也是起源于CSMs,比较有参考价值。
pdf
发布资源于 2 年前

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

指数阴影论文,研究高效阴影参考文档,是实现自己渲染引擎不错的参考资料。
pdf
发布资源于 2 年前

DDS 法向压缩

https://www.nvidia.com/object/real-time-normal-map-dxt-compression.htmlhttps://www.cnblogs.com/oiramario/archive/2011/03/18/1988351.html  Real-Time Normal Map DXT Compression J.M.P. van W...
原创
339阅读
0评论
0点赞
发布博客于 2 年前

DXT纹理压缩格式解析

[转]DXT纹理压缩格式解析 我 们知道游戏中对于3D物体表面细节的表现最重要的还是靠贴图来实现的,那么越是高分辨率越是真彩色的贴图自然表现力也是越强,但是同时带来的问题是所需占 用的内存会成倍的上升,而节省内存这一点在目前的游戏中还是非常非常重要的。 所以各个平台上都在使用纹理压缩的技术,让纹理贴图在内存占用和显示效果能达到一个尽可能的平衡。在DirectX中,使用一种叫做DXT的纹理压缩技...
转载
1160阅读
0评论
2点赞
发布博客于 2 年前

OSG 物理渲染

目前产出了些成果,材质还不够精细 :Demo 模型浏览器 下载链接链接: https://pan.baidu.com/s/1H4lS-iKoTqroq6V-xiwpkw 提取码: f3ig
原创
793阅读
0评论
2点赞
发布博客于 2 年前

Shadow Mapping Summary – Part 1

Shadow Mapping Summary – Part 1 Ignacio Castaño September 23, 2013Engine TechDuring the last several weeks I've been polishing and optimizing the shadowing system and I think that at this point it...
转载
140阅读
0评论
0点赞
发布博客于 2 年前

立体角

圆心角: 弧微分与半径的比值dθ=ds/r周长 2πr, 所以整个圆的圆心角 2π。 立体角: 球面的面积微分与半径平方比值  h=r 时, 半球立体角为2π 球坐标系立体角微分公式:  球坐标系下: 单位球:...
原创
7067阅读
0评论
3点赞
发布博客于 2 年前

相机曝光值,相机曝光值与照度,亮度的关系表

Exposure values (ISO 100) for various lighting conditions Lighting condition EV100 Daylight Light sand or snow in full or slightly hazy sunlight (distinct shadows)a 16 Typical scene in...
原创
3146阅读
0评论
0点赞
发布博客于 2 年前

(PBR) 常见电解质,金属反射率

常见电解质反射率 F0, 电解质反射的颜色是无色的,各成分反射率相同,只用百分比表示。常见金属材质反射率 F0 PBR(UE4)材质使用事项:All materialsBase color  基色(albedo)处理微遮挡外,避免出现光照影响。Metallic       金属度,一般是二值,纯导体值是 1, 电解质是 0 。通常 使用接近1或者0的数值,中间值适合金...
原创
2783阅读
0评论
0点赞
发布博客于 3 年前

OSG 级联阴影实现与改造

最近公司业务需要,在做BIM相关显示与渲染开发,OSG 显示引擎库包里本来包括一些阴影方案,由于都是基于OPENGL固定管线实现的,而且内容比较老,OSG 一些功能可用,但真正的用在项目中,BUG 比较多,大多数需要修改、细化,总感觉它只是提供了Demo级别的演示功能,并没有给你现成的东西去用。因为涉及到建筑的显示,场景规模较大而且需要尽可能的减少阴影锯齿,提高深度纹理精度,这里我主要对OSG...
原创
553阅读
0评论
1点赞
发布博客于 3 年前

OpenGL Projection Matrix (讲的比较通俗易懂,而且细致)

OpenGL Projection MatrixRelated Topics: OpenGL TransformationOverview Perspective Projection Orthographic ProjectionUpdates: The MathML version is available here.OverviewA computer monitor ...
转载
4932阅读
0评论
2点赞
发布博客于 3 年前

What does (gl_FragCoord.z / gl_FragCoord.w) represent?

This was asked (by the same person) and answered elsewhere. I'm paraphrasing and embellishing the answer here:As stated in section 15.2.2 of the OpenGL 4.3 core profile specification (PDF), gl_FragC...
原创
211阅读
0评论
0点赞
发布博客于 3 年前

PSSM阴影 原论文

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

阴影算法

阴影算法,在3D渲染中是很重要的一部分。阴影算法大致可以分为以下三类:基于ray tracing,基于shadow volume,基于shadow map(Z buffer).    Ray tracing可以很自然地实现shadow,不需要特殊处理,但是ray tracing一般都用于离线渲染。Shadow Volume在实时渲染中也有应用,但是Shadow Volume依赖于geometr...
转载
913阅读
0评论
0点赞
发布博客于 3 年前

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

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

Real Time Rendering 3rd edition

实时渲染第三版,英文原版。计算机图形学 游戏开发经典图书。
pdf
发布资源于 3 年前

Unity 3D脚本编程 使用C#语言开发跨平台游戏_PDF

Unity 3D脚本编程 使用C#语言开发跨平台游戏_PDF,学习Unity 3D 脚本编程比较不错的工具书。
pdf
发布资源于 3 年前

osg 场景节点(事件,更新,裁剪)遍历状态开启机制

OSG 显示引擎为优化其显示效率,节点的更新遍历,事件处理遍历默认情况下是关闭的,内部通过更新计数来控制是否将事件处理,节点更新应用到子场景中。void Node::setUpdateCallback(Callback* nc);void Node::setEventCallback(Callback* nc);void Node::setCullingActive(bool active);下面...
原创
1288阅读
0评论
0点赞
发布博客于 3 年前

托马斯微积分

微积分资料, 托马斯微积分第十三版教程,经典教程。这是PDF原版,内容相当的清晰。
pdf
发布资源于 3 年前

OSG 渲染(3) 动态剖切的实现方法

在CAD工程软件里,很多时候需要动态剖切模型来查看模型截面情况。我们知道OpenGL 固定管线支持用户自定义剖面,且最多支持6个剖平面,OpenGL3.0 以后的版本虽然已经逐步废弃固定管线,但我们可以使用shader,并传递截平面方程参数给shader,使用discard 语句实现类似固定管线用户自定义截面的效果。下面将介绍如何实现上图动态剖切且加盖的效果,也将说明存在哪些技术难点。一般方法: ...
原创
1817阅读
2评论
1点赞
发布博客于 3 年前

OSG 多线程模型 设计思想

A New Processing Model forMultithreaded, Multidisplay Scene GraphsCopyright © 2001 Don Burns (DB - Apr 28, 2004) This article was written in 2001 before the initial implementation of Producer. ...
转载
517阅读
0评论
0点赞
发布博客于 3 年前

OSG 渲染(2) 渲染树的构建方式

什么是OSG渲染树?为调整对象的渲染顺序及子场景的渲染顺序的产物 ,树状层次关系,渲染树可以看成挂接了子场景节点的集合。根节点是渲染台,子节点是渲染元,真正的绘制者是渲染叶。RenderStage RenderBinRenderLeaf渲染树由哪些方式构建渲染树通过camera 和 由StateSet 设置的渲染序号和渲染名称在场景对象遍历过程中,通过裁剪器构建起来的。场景执行裁剪之前,系统会默认...
原创
223阅读
0评论
0点赞
发布博客于 3 年前

OSG 渲染(1) 多视图的实现方法

一般多视图、视口在CAD、仿真领域里用的比较多,游戏里用的相对较少。尤其是CAD,要求在多视口内用不同的渲染模式来显示零件。比如,在单视图内用多视口方式,分别用着色模式,线框消隐模式来绘制显示模型。这里提到视口,视图,在不同的软件中因其定义实现的方式不同,显得比较混乱,有时两者不同,有时两者又等价!按我自己理解,一个窗口内划分成几个部分,如果每个子区域包括业务处理逻辑(如事件处理,在子区域内平...
原创
979阅读
4评论
1点赞
发布博客于 3 年前

OpenGL编程指南(第八版) 中文译版

OpenGL编程指南 第八版(中文版),比较清晰。OpenGL 学习参考用书。
pdf
发布资源于 3 年前

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

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