<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lbknxy的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lbknxy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lbknxy]]></copyright><item><title><![CDATA[Scipy:高端科学计算]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/77962120</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/77962120</guid><author>lbknxy</author><pubDate>Wed, 13 Sep 2017 09:49:49 +0800</pubDate><description><![CDATA[原文地址 ： 点击打开链接




作者：Adrien Chauve, Andre Espaze, Emmanuelle Gouillart, Ga?l Varoquaux, Ralf Gommers

翻译自：scipy
 lecture notes
译者表示最后部分没怎么看懂，此文档维护中……


Scipy

scipy包包含致力于科学计算中常见问题的各个工具箱。]]></description><category></category></item><item><title><![CDATA[gl_Position is not accessible in this profile]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/64441294</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/64441294</guid><author>lbknxy</author><pubDate>Tue, 21 Mar 2017 14:29:39 +0800</pubDate><description><![CDATA[可能是你把本应该在 vertex shader 里的内置变量用在 fragment shader里了 ，或者你把fragment shader 和 vertex shader 搞反了。 
我的问题是由于脚本文件没改变，把vertex shader 同时当成vertetx shader 和 fragment shader 了。]]></description><category></category></item><item><title><![CDATA[ByteBuffer]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/54705871</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/54705871</guid><author>lbknxy</author><pubDate>Wed, 15 Mar 2017 22:46:29 +0800</pubDate><description><![CDATA[ByteBuffer有两种类型，一种是创建ByteBufferByteBuffer b1 = ByteBuffer.allocate(size);进入 ByteBuffer的allocate方法： public static ByteBuffer allocate(int capacity) {
        ...
        return new HeapByteBuffer(capaci]]></description><category></category></item><item><title><![CDATA[Directshow Filter 链接过程]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/62237637</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/62237637</guid><author>lbknxy</author><pubDate>Wed, 15 Mar 2017 22:36:47 +0800</pubDate><description><![CDATA[最近要用到一个TransformFilter 做一些转换，就看了些Directshow的东西，一直困惑于Filter之间是怎么进行连接协商的，那些必须要重写的CTransformFilter方法有什么用，又是什么时候被调用的也感到迷惑，现在就记录一下自己的探索过程。
Filter连接的本质就是Filter的Pin与Pin之间的连接，首先上游Filter的OutputPin的CBasePin::C]]></description><category></category></item><item><title><![CDATA[Camera2 YUV420_888]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/54633008</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/54633008</guid><author>lbknxy</author><pubDate>Mon, 23 Jan 2017 16:06:35 +0800</pubDate><description><![CDATA[Camera2 YUV420_888转RGB官网文档介绍Android PAI 对 YUV420_888的介绍 ，大致意思如下： 
  它是YCbCr的泛化格式，能够表示任何4:2:0的平面和半平面格式，每个分量用8 bits 表示。带有这种格式的图像使用3个独立的Buffer表示，每一个Buffer表示一个颜色平面(Plane)，除了Buffer外，它还提供rowStride、pixelStrid]]></description><category></category></item><item><title><![CDATA[Android  IllegalMonitorStateException]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/53392848</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/53392848</guid><author>lbknxy</author><pubDate>Tue, 29 Nov 2016 15:02:43 +0800</pubDate><description><![CDATA[写了好久的C++  然后Java又茫然了，  今天在学习Handler的时候， 在子线程中使用Looper.prepare() , 主要是是调用Object的wait() 和 notifyAll()、notify()时AS报如下错误：IllegalMonitorStateExceptionObject 这些方法都是先获得锁，然后再释放锁，所以在使用时必须将它们放在锁里。 
可修改如下：synchro]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Draw--Render and presentation]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52614474</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52614474</guid><author>lbknxy</author><pubDate>Wed, 21 Sep 2016 23:11:29 +0800</pubDate><description><![CDATA[原文地址 ：  vulkan-tutorialRendering and presentation接下来我们将使用drawFrame() 函数将三角形显示到屏幕上。 
drawFrame()要做如下几件事:
从Swap Chain 请求一个image。
执行带有这个image的command buffer ，这个image曾被当做attachment存储在framebuffer中(Execute t]]></description><category></category></item><item><title><![CDATA[函数指针]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52601939</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52601939</guid><author>lbknxy</author><pubDate>Tue, 20 Sep 2016 23:58:29 +0800</pubDate><description><![CDATA[和其他简单变量一样，编译阶段会给函数代码块分配一块内存，内存的首地址其实就是函数的名字，通常也称作指向函数的指针，即函数指针。
如下 ：
int max(int a,int b){
	int result = a > b ? a : b;
	
	cout<<result<<endl;
}
这个函数返回a ,  b两数的最大者，我们可以为定义一个指向这个函数的指针fun：
int (*fun)]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Draw--CommandBuffer]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52599734</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52599734</guid><author>lbknxy</author><pubDate>Tue, 20 Sep 2016 20:53:46 +0800</pubDate><description><![CDATA[原文地址 ：  vulkan-tutorialCommand buffers在Vulkan中，像绘画命令、内存转换等操作并不是直接通过方法调用去完成的，而是需要把所有的操作放在Command Buffer 里。这样的一个好处就是：那些已设置好的具有难度的绘图工作都可以在多线程的情况下提前完成。Command poolsCommand pools 管理Command buffer 的内存而且Comma]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Draw--Framebuffer]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52589179</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52589179</guid><author>lbknxy</author><pubDate>Mon, 19 Sep 2016 20:49:20 +0800</pubDate><description><![CDATA[原文地址 ：  vulkan-tutorialFramebuffers我们已在之前的章节中多次提到FrameBuffer 并且在创建Render Pass时,我们期望拥有一个和Swap Chain 里image具有相同格式(format)的FrameBuffer。 接下来我们就将创建这种FrameBufefr.  我们将attachments包裹在FrameBuffer中，FrameBuffer 通]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Pipeline--Render passes]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52551050</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52551050</guid><author>lbknxy</author><pubDate>Thu, 15 Sep 2016 21:29:40 +0800</pubDate><description><![CDATA[原文链接 :  vulkan-tutorialRender Pass在创建Pipeline 之前我们必须告诉Vulkan在渲染时要使用的FrameBuffer 附件(attachments)，需要定义使用color buffer 以及 depth buffer attachments的数量，要使用多少个采样(samples)以及应该如何处理采样的内容。所有这些信息都可以填写在Render Pass里]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Pipeline--Fixed function]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52529494</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52529494</guid><author>lbknxy</author><pubDate>Wed, 14 Sep 2016 21:17:48 +0800</pubDate><description><![CDATA[原文地址  :  vulkan-tutorial 





Fixed functions

这一章节的内容大部分设计Pipeline中不可编程部分的配置。



Vertex input

VkPipelineVertexInputStateCreateInfo 代表我们传递给Vertex Shader 顶点数据的格式，它涉及以下两个方面:


顶点数据的描述(Bindings) :数据间的间]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Pipeline--Shader Module]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52517779</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52517779</guid><author>lbknxy</author><pubDate>Mon, 12 Sep 2016 21:47:15 +0800</pubDate><description><![CDATA[原文地址 ： vulkan-tutorial着色器模块  Shader modulesVulkan 和之前的图形API有所不同，为了避免不同厂商移植代码的复杂性，Vulkan的着色器代码(shader code)采用字节码格式(bytecode) SPIR-V，而非人类可以阅读的文本格式,如GLSL(opengl 的一套体系)等。但这并不意味着我们要亲自手写字节码， 幸运的是LunarG SDK 已]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Pipeline--Introduction]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52497431</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52497431</guid><author>lbknxy</author><pubDate>Sat, 10 Sep 2016 22:25:45 +0800</pubDate><description><![CDATA[原文链接： vulkan-tutorialPipeline前言(Introduction)Pipeline 是指图形系统对图像信息进行一系列处理的过程，这些图像信息包括顶点信息(坐标、法向量…),像素信息(图像、纹理…)等,最终这些处理好的数据将被放到帧缓冲区(FrameBuffer)中供应用获取。
  图1-Pipeline过程
a.输入装配器(Input assembler) : 从Vertex]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Presentation-- Image views]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52490453</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52490453</guid><author>lbknxy</author><pubDate>Fri, 09 Sep 2016 20:52:02 +0800</pubDate><description><![CDATA[原文地址:  vulkan-tutorialImage views为了使用VkImage,不管是在Swap Chain 还是在Pipeline 中，我们都必须创建VkImageView,就如同它的字面意思一样,imageView是image的一个 view.他描述了我们如何访问image、访问image的哪一部分等。这一部分我们将创建VkImageViews  ， 并把它用作 color targe]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Presentation--SwapChain]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52464445</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52464445</guid><author>lbknxy</author><pubDate>Thu, 08 Sep 2016 19:49:19 +0800</pubDate><description><![CDATA[原文链接： Vulakn-tutorial





SwapChain

这一章节我们将学习这样一种结构/基础(infrastructure)，它能为我们提供要渲染的图片，然后渲染结的果可以显到屏幕上。这样的结构就是Swap Chain , Swap Chain必须被Vulkan显示的创建。从本质上讲，Swap Chain就是一个图片的队列(a queue of images),这里的图片等着被]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Presentation--Window surface]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52452094</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52452094</guid><author>lbknxy</author><pubDate>Tue, 06 Sep 2016 21:45:50 +0800</pubDate><description><![CDATA[原文链接: Vulkan-tutorialWindow surface因为Vulkan是平台(platform)无关的，它不能直接与平台窗体系统(window system)进行通信，为了连接Vulkan和窗体系统,使得被渲染后的结果显示到屏幕上，我们需要使用WSI扩展(Window System Integration extensions),在这个章节我们将使用VK_KHR_surface，它提]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Set up--Logical Device]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52444597</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52444597</guid><author>lbknxy</author><pubDate>Mon, 05 Sep 2016 22:53:55 +0800</pubDate><description><![CDATA[原文链接 : Vulakn-tutorialLogical Device只有Physical Device 还不行，我们还需要创建Logical Device 来与它相联。Physical Device的创建和VkInstance的创建过程差不多，需要明确我们所需的特性(features)、extensions、Validation layers 、queue等。声明 :VDeleter<VkDev]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Set up--Physical Device and Queue Family]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52430773</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52430773</guid><author>lbknxy</author><pubDate>Sun, 04 Sep 2016 19:09:05 +0800</pubDate><description><![CDATA[原文链接：Vulkan-tutorial





Physical Device and Queue

好了，我们已经用VkINstance初始化了Vulkan API,是时候选择一个具有我们需要的特性的显卡了(graphics card),事实上，我们可以同时使用多个显卡，为了简单起见，我们只选择第一个满足我们要求的显卡。



VkPhysicalDevice physicalDevice=]]></description><category></category></item><item><title><![CDATA[vulakn教程--Drawing a Triangle--Set up--Validation layers]]></title><link>https://blog.youkuaiyun.com/lbknxy/article/details/52430599</link><guid>https://blog.youkuaiyun.com/lbknxy/article/details/52430599</guid><author>lbknxy</author><pubDate>Sun, 04 Sep 2016 10:04:43 +0800</pubDate><description><![CDATA[原文链接：Vulkan-tutorialValidation layers 验证层为什么要用Validation layers ? 
Vulkan的设计理念是：使驱动(driver)的负担最小化。一个明显的表现就是它有限的错误检测，像设置错误的枚举值或者将必须的函数参数传递为空指针(NULL)这类简单的操作都没有明确的处理，Vulkan只是简单的Crash或者产生一些未定义的行为(undefined]]></description><category></category></item></channel></rss>