Vulkan枚举值的字符串化
Vulkan中的枚举值做了很好的枚举类型管理,尽管还是是C类型的枚举,具有全局符号可见行;再尽管不似C++ enum class有严格的命名空间访问机制,但是仍然具备相应的枚举类型作为命名空间管理和访问。这为Vulkan枚举值的字符串转换提供了方便,可能这也是为何VulkanSDK给出了官方实现vk_enum_string_helper.h的原因。
以VkImageType为例,
MeshLab调试时加载的dll版本不对
从MeshLab
2023.12下载安装的2023.12版本,我在本地clone了一份源码编译,发现在C:\Users\Administrator\AppData\Roaming\VCG\MeshLab_64bit_fp\MeshLabExtraPlugins\2023.12位置存放了一套插件的dll文件,也就是这一套dll文件影响了源码的调试,也即调试时加载的这个目录下的dll文件,不是生成路径下的dll文件。
根据调用栈加载dll的路径就是这个路径:

OpenGL目前的最新版本是2017年发布的4.6版本,OpenGL老矣也不会再有更新了。尽管OpenGL是一套简单易用的图形API,但是很明显它并没有紧跟图形技术发展的脉搏,不仅仅落后于同时代的DirectX,其自身标准的取舍也使其变的碎片化。模式和兼容性就是其中恶心的一点,本文便是记录GLFW3在创建OpenGL上下文时设置模式和兼容性所设置的一些字段。
以前用GLFW3和OpenGL做一些demo时候,glfwWindowHint随意复制粘贴一下然后设置一下OpenGL
Context的版本和Profile即可,并没有过多理会其他的字段的含义和差别。毕竟使用Modern OpenGL或者Core Profile的OpenGL,并不需要在意兼容模式下大量的固定管线API的功能。但是,当实际使用中涉及到了glLineWidth这种从上古时代OpenGL
2.0时期延续至今并在OpenGL
4.6中Deprecated的API,更骚气的是其能不能work还要取决于硬件能力和驱动实现,多重buff于一身,某些字段的设置开始变的微妙起来了。
1 | glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); |
收录经过整合和验证的Hexo-Next配置方案,主要内容来自于网络技术文章,并给出出处,感谢网络大佬们的分享~
1 | .post-body a:not(.btn){ |
| wireframe | line mode | line width | |
|---|---|---|---|
| OpenGL | glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) | glDrawArrays: GL_LINES/GL_LINE_STRIP/GL_LINE_LOOP | glLineWidth |
| Vulkan | VkPipelineRasterizationStateCreateInfo/VK_POLYGON_MODE_LINE | VkPipelineInputAssemblyStateCreateInfo: VK_PRIMITIVE_TOPOLOGY_LINE_LIST/VK_PRIMITIVE_TOPOLOGY_LINE_STRIP | vkCmdSetLineWidth, VkPipelineRasterizationStateCreateInfo::lineWidth |
| DirectX 11 | D3D11_RASTERIZER_DESC/D3D11_FILL_WIREFRAME | IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_LINELIST) | |
| DirectX 12 | D3D12_GRAPHICS_PIPELINE_STATE_DESC/D3D12_FILL_WIREFRAME | D3D12_GRAPHICS_PIPELINE_STATE_DESC/D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE, IASetPrimitiveTopology(D3D12_PRIMITIVE_TOPOLOGY_LINELIST) |
glLineWidth的文档中说只保证宽度1的设置,其他宽度依赖硬件实现。 > Only width 1 is guaranteed to be supported; others depend on the implementation.
使用Google的人脸检测工具MediaPipe来做人脸关键点的检测,可以按照Face Mesh Detection with Python and OpenCV的操作安装MediaPipe并可视化关键点。
1 | import cv2 |
看到很多人的主页做的好看丝滑又专业,不免得想拥有一个自己的。最开始使用Github Pages的默认静态网页生成器jekyll搭建了一个,但是奈何觉得有些复杂和浮夸。搜索一番,发现Hexo和NexT Theme使用广泛,而且找到了我想要的比较简洁的风格示例,比如木鸟杂记、IIssNan’s Notes、NightTeam、In Absentia,在阅读官方文档和热情网友分享的文章(比如如何在 GitHub 上写博客?)中,在不懂得各种前端知识情况下,一步步搭建了一个机遇GitHub Pages + Hexo + NexT的个人主页。刚刚开始,对于Hexo一点儿也不熟悉,还有很多需要配置的地方,但是趁着热乎劲,把搭建的历程记录下来,为后来者以参考,为自己以作备忘。
Note: 完工之后回头看,由于对相关背景知识不了解,胡乱查了很多,其实Hexo的官方文档才是最好的教学和参考,详尽而工整,是很好的技术文档范例,而且有中文版哟~
个人主页的文件是以repo的形式托管在GitHub上的,所以第一步要创建一个名为 {username}.github.io的项目,按照creating a github pages site一步步操作即可。
安装Nodejs和Hexo, Hexo Overview
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.