设置生成目标的输出目录
1 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/$<CONFIG>) |
Note
$<CONFIG>
应该在VS下才起作用
1 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/$<CONFIG>) |
Note
$<CONFIG>
应该在VS下才起作用
I don’t know of any game engines where they attribute real-world units to lighting and material values, since those kinds of things tend to be driven more by the appearance than the physical correctness. The relative intensities of, say, a candle and a 100W light bulb are probably more important than the absolute values.Lighting: The Rendering Equation
Click “Main Camera” in the Hierarchy and then select GameObject > Align with View. How to Set Unity Camera to Scene View or Field of View
如果想要Camera视口范围覆盖当前编辑View,可以通过在视口的gizmo辅助下调整Camera的FOV来实现。
DirectX SDK
自从Windows 8 SDK
开始,是随着Windows SDK
附带的,包含了各个历史版本的头文件、动态库和工具集,但是这些历史版本SDK的sample和辅助库D3DX9、D3DX10、D3DX11等就被丢弃了。
偶尔会遇到一些D3D的旧版本上古demo,可能就使用了一些旧版本的辅助函数,比如在看SSS效果的时候使用iryoku大佬的separable-sss,仅仅依赖Windows SDK
附带的DX依赖是没法正确跑起来。
如果没记错的话,最初应该是在OpenGL SuperBibile
里面看到的无Buffer的渲染方式,把三角形顶点数据写在vertex shader
代码里,在shader里通过index取相应的数据,当时感觉平平无奇。后来在SaschaWillems的Vulkan
example里看到更精简的写法,当时表示惊呆了,使用gl_VertexIndex
来构造顶点数据,画一个覆盖屏幕的quad。下面就是Vulkan example
的实现。其中vkCmdDrawIndexed
对应gl_VertexIndex
,
vkCmdDraw
对应gl_VertexID
;我是在GL环境下,则是glDrawElements
对应gl_VertexIndex
,
glDrawArrays
对应gl_VertexID
。
1 | #version 450 |
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); |