![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VR
knowthyselfcn
桌面端、网站架构,会点opengl,会点Android
展开
-
Real Time Rendering
2014-11-14 这是我感觉之前对英文阅读的坚持回报最好的一次。 在阅读过程中,没有过多的术语来干扰, 少数的单词直接查dict 就明白了。我给自己定下了一个目标,并且在目标完成之后再来评估自己的长进。我想看看,从九月开始,我再完成100本英文书的阅读,之后会是什么感觉。 我非茶期待。我希望在明年年中之前能够完成。 在阅读了一半的时候,我就在想,如果早原创 2017-02-10 12:04:42 · 464 阅读 · 0 评论 -
VR的元年?
2017-01-09 2016年被誉为VR技术的元年,年初到年中,三大厂商都推出了消费者版本的头显设备,各路厂商陆续跟进,各种周边设备也如纷纷发布,好不热闹。到了下半年,一直被提及的“互联网寒冬”似乎终于出现了,可见的统计资料上就可看到风投笔数明显的减少,这个所谓的VR元年中,VR马上就走入了末路一般,这段时间唱衰的也不少。 增强现实的Magic Leap 最近被打脸了,以前原创 2017-02-10 14:22:19 · 592 阅读 · 0 评论 -
《计算机动画算法与技术》
2016-01-09 我关注了这个系列的书有一段时间了,本来是不想买这本书的,动画相关的部分目前对我来说没用。但是,前一段时间我们的项目需要做到活动的人体与衣服做碰撞,模拟组调研了一些资料,如实时体素化之类的,但是貌似开销很大,我这段时间想弄明白跟人体动画相关的知识,看看这个部分大致有哪些基础工作和难点,就弄了一本。 入门的好书,覆盖了动画效果中的大部分内容。插值计算部分还是原创 2017-02-10 14:14:00 · 2680 阅读 · 0 评论 -
OpenGL红宝书 第八版
2014-12-30 这个第八版要比第七版好多了。想当初,第七版刚拿到手,对比着目录和内容,发现很多东西都被标记为 deprecated。我拿起笔来,给index中deprecated的章做标记,结果完成了就发现,这本书除了基础和高级部分,加附录,都不用学习了。全是废弃的东西,还学什么呢?一上来感觉就不好啊。 真正比起来,新版有如下的特点:章节安排更加合理 讲解更加细致 ...原创 2017-02-10 12:08:26 · 653 阅读 · 0 评论 -
Vulkan编程指南翻译 第五章 展现 第5节 开始呈现
5.6 开始显示显示,是在队列上下文中发生的操作。一般,提交到队列的命令缓冲区中的命令被执行时,会产生用来显示图像,所以,这些图像只有在渲染操作完成后才能展示给用户。一个系统中一个设备可以支持多个队列,它们不必都支持显示。在你可以使用队列来在画幕上显示之前,你必须判断队列是否支持在某个画幕上显示。要想知道一个队列是否支持显示,传递物理设备,画幕,队列组到vkGetPhysica原创 2017-03-03 16:04:49 · 877 阅读 · 0 评论 -
Vulkan编程指南翻译 第六章 着色器和管线 第2节 SPIR-V 概述
6.2 SPIR-V 概述 SPIR-V着色器嵌入在module里。每一个module都可以包含一个或多个着色器。每一个着色器都有一个固定名字入口点和着色器类型,这用来定义着色器在哪个着色阶段来使用。入口点之着色器开始运行时的起始位置。一个SPIR-Vmodule都随着一些附带信息传递 给Vulkan,Vulkan返回一个对象来表示这个module。此module可以用来构造一个管线翻译 2017-03-04 17:55:27 · 2913 阅读 · 0 评论 -
Vulkan编程指南翻译 第六章 着色器和管线 第1节 GLSL简介
第六章 着色器和管线在本章你将学到l 什么事着色器及如何使用它l SPIR-V -- Vulkan渲染语言的基础知识l 如何构造着色器管线并用它做工作 着色器是在设备上执行的小程序。他们是任何复杂Vulkan程序构建的基础单元。对你的应用程序中操作来讲,着色器比Vulkan API更重要。本章介绍着色器和着色器模块,展示他们如何从SPIR-V二进制文件构建,并讲解如何使用标翻译 2017-03-04 12:02:26 · 2294 阅读 · 0 评论 -
Vulkan编程指南翻译 第七章 图形管线 第2节 Renderpasses(未完成)
a翻译 2017-03-22 00:53:46 · 2314 阅读 · 0 评论 -
Vulkan编程指南翻译 第七章 图形管线 第1节 逻辑图形管线
第七章 图形管线 在本章你将学到图形管线是什么样子的如何创建图形管线对象如何使用Vulkan绘制图元 或许Vulkan最常被当作图形管线API来使用。图形是Vulkan和驱动最基础的功能,是任何视觉效果程序的核心。Vulkan中图形处理可以被看作是管线,管线接受多个贯穿多个阶段图形命令,并在显示器上产生图像。本章将覆盖Vulkan中图形管线的基础并介绍第一个管线的例子。翻译 2017-03-12 21:47:37 · 813 阅读 · 0 评论 -
Vulkan编程指南翻译 第七章 图形管线 第3节 帧缓冲区
7.3 Framebuffer帧缓冲区是一个用来表示一些存储渲染结果的图像的对象。这影响管线最后几个阶段:深度和stencil测试,混合,logic 操作,多采样等等。一个帧缓冲区对象通过使用renderpass的引用来创建,可以和多个有类似附件排放的renderpass一同使用。调用vkCreateFramebuffer()可创建一个帧缓冲区对象,其原型如下: VkRe翻译 2017-03-16 19:56:12 · 827 阅读 · 0 评论 -
Vulkan规范:第八章 8.3 ~ 8.10
8.4. 着色器的输入和输出数据通过 input 和 output修饰的变量传入和传出着色器。 在不同阶段之间用户自定义的输入和输出是通过匹配Location修饰符来联系起来的。 另外,可以使用 BuiltIn 修饰符来对执行环境中特殊函数提供数据或进行数据交换。在很多场合下,同一个BuiltIn可以在多个着色器阶段使用,含义相近。 BuiltIn修饰的变量的行为在翻译 2017-11-14 23:44:54 · 468 阅读 · 0 评论 -
glew工作原理
2017-02-16 在C/C++程序中使用OpenGL时,需要使用glew/glad这样的第三方库来加载OpenGL函数。不像一般的第三方lib,通过头文件,直接就能够找到函数的指针地址。很多同学不明白为什么需要这么做。本文,就来分析一下。 因为gl.h这个头文件在windows平台是最原始的版本,微软并不更新,一些最新的函数接口并不能暴露出来,不知为何,在Linux上同样不原创 2017-02-17 15:02:59 · 9557 阅读 · 0 评论 -
Vulkan编程指南翻译 第二章 第一节 CPU内存管理
你将在本章中学到:l Vulkan如何管理主机和设备内存l 在应用程序中如何有效地管理内存l Vulkan如何使用images和buffers消费和生产数据memory是是几乎所有计算机系统做任何操作的基础,也包括Vulkan。在Vulkan里,memory基本上有两种类型:主机memory和设备memory。Vulkan操作的所有资源必须被设备内存支持,应用程序需要负责管理翻译 2017-02-17 21:06:56 · 2214 阅读 · 0 评论 -
Vulkan编程指南翻译 第五章 展现 第3节 交换链
5.4 全屏画幕在前一节提到的平台特定的拓展允许创建的VkSurface对象代表一个操作系统或者窗口系统原生的一个窗口。这些拓展通常被用来在一个桌面上可见的窗口做渲染工作。即使我们可以创建一个不带边框、占满真个屏幕的窗口,这样渲染效率更高。这个功能由VK_KHR_display和VK_KHR_display_swapchain拓展提供。这些拓展提供了一个平台无关的机制,来获取系统的显示器,翻译 2017-03-02 17:24:27 · 785 阅读 · 1 评论 -
Nov 5th mesh
2014-11-29 这本小册子非常不错,我大致了解了mesh这方面的工作的内容,也知道了需要的数学基础是什么。书籍有一些难度,我花费了一周的时间才读完了第一遍。但是,我先前在这方面的数学基础不牢固,还需要时间来回顾。我没有想到,竟然会涉及到topology, differential geometry,微积分在这里也是非常基础的工具。 我最近也在想一个问题,我在上大学的原创 2017-02-10 12:07:31 · 398 阅读 · 0 评论 -
OpenGL Super Bible 6th
2015-04-25 我在刚开始学习OpenGL的时候,购买的是红白书第七版,好友黑炭子帮购买的是蓝宝书的第五版,当时这两本书的的差别还是挺明显的,红宝书片中实战,跟着学习就能做出来简单的例子程序,蓝宝书偏重相关的基础知识。现在,这两本书各种都升级了,这种差别更加明显了。我的感觉是学习完了红宝书,感觉自己会的很多,各种高级技巧都覆盖到了,但是,也留下了大量的迷惑,为什么是这样原创 2017-02-10 13:45:07 · 547 阅读 · 0 评论 -
近况
2015-06-19 近况有一点小糟糕,一些事情都超出了我的预估。这是我一直尽量避免的情况。 最近十个月,我的研究中心完全移动到了CG,CV,编译器和语言理论部分已经暂停了,想写的一本关于计算机语言与解释器的书籍也中断了,操作系统相关的部分暂停了,网络的部分一直都不是我关注的重点,也没有再关注了,Web 开发部分基本上不再关注了,只是自己使用以前学到的知识,自己玩儿点新花原创 2017-02-10 13:49:43 · 380 阅读 · 0 评论 -
VR 与 AR
2015-06-24 我花了一些时间整理了VR和AR最近几年的发展情况,36kr 文章显示:12~13年,每年只有十多篇报道,从 Apr 2014 开始相关的报导大量增加,15年开始爆发;AR方面,2010年开始有报道,到2013年每年也只有十多篇报道,2014年急剧增加。与VR相比,似乎人们对其关注度低了不少。显然,VR短期内是可以实现的,AR则困难不少。 36kr报道原创 2017-02-10 13:50:31 · 412 阅读 · 0 评论 -
Vulkan编程指南翻译 第四章 队列和命令 第5节 复制压缩图像数据
4.5 复制压缩图像数据如在第二章“内存和资源”中讨论过的,Vulkan支持多种压缩图像格式。所有目前定义的压缩格式都是基于固定大小的块的格式。对于其中的许多种,块大小是 4 × 4纹素。对于 ASTC格式,块大小是随图像变动的。当从缓冲区复制数据到图像时,只有整数大小的块能被复制。因此,每一个图像区域,以纹素为单位,必须是图像所用块大小的整数倍。还有,复制操作的源区域必须是块大小的整数翻译 2017-03-01 12:18:36 · 676 阅读 · 0 评论 -
Vulkan编程指南翻译 第四章 队列和命令 第4节 复制图像数据
4.4 复制图像数据在前一节,我们讨论了如何清空图像并通过一个简单的数据结构来填充数据。在很多情况下,你需要把纹理数据上传到图像或者复制图像数据到另一图像。Vulkan支持从缓冲区向图像复制数据,在图像之间复制数据,和从图像向缓冲区复制数据。调用vkCmdCopyBufferToImage(),可从缓冲区向图像的一个或者多个区域复制数据。其原型如下:void vkCmdCopyBuf翻译 2017-03-01 12:13:46 · 1213 阅读 · 0 评论 -
Vulkan编程指南翻译 第四章 队列和命令 第6节 展开图像
4.6 展开图像所有目前讲到的图片相关的命令,没有一个支持格式转换和改变复制区域的尺寸。你可以调用vkCmdBlitImage()实现这个功能,它可以接受不同格式的图像并展开或缩小需要复制的区域,当这些区域写入到目标图像时。术语blit是 block image transfer的缩写,指不仅需要复制图像数据,并且也可能需要在此过程中处理数据。vkCmdBlitImage()的原型如下:翻译 2017-03-01 12:26:24 · 1011 阅读 · 0 评论 -
Vulkan编程指南翻译 第五章 展现 第1节 拓展
你将在本章中学到:l 如何在屏幕上展现你的应用程序的结果l 如何决定系统的显示设备l 如何改变显示模式并和原生的窗口系统交流 Vulkan主要是一个图形API,它的大多数功能专注于生成和处理图片。绝大多数Vulkan应用程序被设计来给用户展现结果的。这就是常被称为“展现”的过程。然而,因为Vulkan所运行的平台各异,展示并不是它核心API,但被移交给一套拓展。本章翻译 2017-03-01 12:27:09 · 892 阅读 · 0 评论 -
Vulkan编程指南翻译 第五章 展现 第2节 展现表面
5.2 展现表面被渲染的图形数据以备展示的对象被被称为”表面“,由一个VkSurfaceKHR类型的handle表示。这种特殊的对象由VK_KHR_surface拓展引入。这个拓展提供了处理surface对象的功能,但是它在各平台基础上高度定制化,以提供surface与窗口的对接的功能。Interfaces are defined for Microsoft Windows, Mir and翻译 2017-03-01 12:28:01 · 1097 阅读 · 0 评论 -
Vulkan规范:第八章 8.11 ~ 8.13
8.11. 插值修饰(Interpolation Decorations)插值修饰控制了片元着色器阶段插值属性的行为。 插值修饰可以应用到片元着色器的 Input 存储类变量,并控制这些变量的插值行为。输入变量最多可以被下列描述符中的一个所修饰:Flat: 无插值NoPerspective: 线性插值 (对于 线 和 多边形来说)翻译 2017-11-14 23:45:39 · 345 阅读 · 0 评论