
graphics
文章平均质量分 93
makefish
Graphics,Chromium
展开
-
Rectangle Texture
矩形纹理(Rectangle_Texture)里面是一个2D image,该image不包含mipmap。当对纹理进行采样的时候,需要使用texel value来访问纹理里面的点。这和普通的GL_TEXTURE_2D的不一样,普通的纹理使用的是归一化的纹理坐标(Real time rendering 149页, 将图片纹理里面的像素,叫做texel,所以texel value指的就是纹理像素的真实...原创 2019-01-21 15:48:40 · 791 阅读 · 1 评论 -
Skia实现图像边缘检测
这里使用的是Laplace算子:Skia的实现如下:#include "SkMatrixConvolutionImageFilter.h"void draw(SkCanvas* canvas) { SkScalar kernel[9] = { SkIntToScalar(-1), SkIntToScalar(-1), SkIntToScalar(-1), SkI...原创 2019-02-20 19:02:21 · 552 阅读 · 0 评论 -
3D编程的深度信息
深度信息在不同的阶段其意义是不同的,不同的3D接口对这个深度信息的理解也有区别。本文仅仅讨论位于NDC空间的深度信息,其取值范围通常是[0, 1.0]或者[-1.0, 1.0]。OpenGL的深度信息OpenGL默认是GL_NEGATIVE_ONE_TO_ONE,即[-1.0, 1.0]。通过glClipControl(GL_ZERO_TO_ONE)可以修改为[0, 1.0]。修改后可以和D...原创 2019-08-08 14:27:29 · 262 阅读 · 1 评论 -
SwiftShader-Vulkan的线程结构
SwiftShader是谷歌的开源项目,使用软件的方式实现了部分GPU的渲染功能,它支持OpenGL/Vulkan/D3D等接口。本文讨论SwiftShader的Vulkan实现,它本身是通过多线程来实现的:Submit线程:将用户提交到同一个CommandBuffer的Vulkan命令整理成绘图任务(Task,也可以叫DrawCall);Raster线程:执行绘图任务。绘图任务主要工作是:...原创 2019-08-14 13:19:18 · 4001 阅读 · 0 评论 -
OpenGL和Vulkan的Color Renderable Format
Image/Texture资源可以分为两种:SampleableRenderableOpenGL ES 2.0https://www.khronos.org/registry/OpenGL/specs/es/2.0/es_full_spec_2.0.pdfVulkanVulkan的情形要复杂一些,每个不同用途的Image,支持的格式都是有区别的。所以Vulkan在处理Image...原创 2019-08-15 14:41:40 · 714 阅读 · 0 评论