Instant-ngp Windows11安装、使用记录

article/2025/11/9 13:16:08

Instant NeRF - Study&Debug

本机配置 Y9000P RTX3060 Win11

  • Instant NeRF - Study&Debug
    • 1. Git
    • 2. Cmake
    • 3. instant-ngp
      • 示例数据
      • 自定义数据
      • 注意事项
      • 问题疑惑

1. Git

  1. 正常下载安装,启动Git Bash

  2. 设置用户名

$ git config --global user.name "**"
$ git config --global user.email "–*******@gmail.com"
$ git config --global --list
user.name=**
user.email=<U+0096>********@gmail.com

由于以上邮箱是从浏览器拷贝的,所以前面带了个也就是<U+0096>,但是在终端上不可见(浏览器拷贝的东西经常会有这玩意儿)。解决方法就是重新手动输入命令

$ git config --global user.email "*********@gmail.com"
  1. 链接Github,具体看网上教程,这里密码懒得记,为空
$ ssh-keygen  -t  rsa  -C "*******@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/****/.ssh/id_rsa):
Created directory '/c/Users/****/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/****.ssh/id_rsa
Your public key has been saved in /c/Users/****/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:****************** ****@gmail.com
The key's randomart image is:
+---[RSA 3072]----+
|    ...  o.=. .  |
|   . ****.       |
|    o . .o.*o. ..|
|. .    .. =o  .  |
|E*****           |
|=.O     +        |
|oB.-----         |
|= =.B            |
|.+ *.            |
+----[SHA256]-----+
  1. 尝试 ping 通 Github远程仓库,成功
$ ssh git@github.com
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
PTY allocation request failed on channel 0
Hi **********! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.
  1. git clone 时报错
$ git clone --recursive https://github.com/nvlabs/instant-ngp 
  • Connection was reset, errno 10054
fatal: unable to access 'https://github.com/nvlabs/instant-ngp/': OpenSSL SSL_read: Connection was reset, errno 10054

solution:

$ git config --global http.sslVerify false
  • port 443 after 21083 ms: Timed out
fatal: unable to access 'https://github.com/nvlabs/instant-ngp/': Failed to connect to github.com port 443 after 21083 ms: Timed out

代理的问题,把Clash中设置的端口号添加到 config 中

solution:

    $ git config --global http.proxy http://127.0.0.1:7890$ git config --global https.proxy https://127.0.0.1:7890

2. Cmake

在开发人员命令提示符窗口(developer command prompt 直接用这个英文搜)执行

$ cd instant-ngp
instant-ngp$ cmake . -B build

输出如下:

D:\Project\CmakeProject\instant-ngp>cmake . -B build
-- Building for: Visual Studio 16 2019
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22000.
-- The C compiler identification is MSVC 19.29.30145.0
-- The CXX compiler identification is MSVC 19.29.30145.0
-- The CUDA compiler identification is NVIDIA 11.1.105
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: D:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: D:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting CUDA compiler ABI info
-- Detecting CUDA compiler ABI info - done
-- Check for working CUDA compiler: D:/Program Files (x86)/NVIDIA/NVIDIA GPU Computing Toolkit/CUDA/v11.1/bin/nvcc.exe - skipped
-- Detecting CUDA compile features
-- Detecting CUDA compile features - done
-- Targeting GPU architectures: 86
-- Module support is disabled.
-- Version: 9.0.0
-- Build type:
-- CXX_STANDARD: 14
-- Required features: cxx_variadic_templates
-- Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR) (found version "")
CMake Warning at CMakeLists.txt:118 (message):Vulkan was not found.  Neural graphics primitives will still compile andrun correctly, but DLSS will not be supported.-- Looking for pthread.h
-- Looking for pthread.h - not found
-- Found Threads: TRUE
-- Using Win32 for window creation
-- Found OpenMP_C: -openmp (found version "2.0")
-- Found OpenMP_CXX: -openmp (found version "2.0")
-- Found OpenMP: TRUE (found version "2.0")
-- !!! Warning OptiX_INSTALL_DIR not set in environment. using default
-- OptiX_INSTALL_DIR value: C:\ProgramData\NVIDIA Corporation\OptiX SDK 7.5.0
-- OptiX headers (optix.h and friends) not found.
CMake Warning at CMakeLists.txt:194 (message):OptiX was not found.  Neural graphics primitives will still compile and runcorrectly.  However, SDF training in 'raystab' and 'pathescape' modes willbe significantly slower.-- Found Python: D:/ProgramData/Anaconda3/python.exe (found suitable version "3.9.12", minimum required is "3.7") found components: Interpreter Development Development.Module Development.Embed
-- pybind11 v2.7.1
CMake Warning (dev) at D:/Program Files (x86)/CMake/share/cmake-3.23/Modules/CMakeDependentOption.cmake:89 (message):Policy CMP0127 is not set: cmake_dependent_option() supports full ConditionSyntax.  Run "cmake --help-policy CMP0127" for policy details.  Use thecmake_policy command to set the policy and suppress this warning.
Call Stack (most recent call first):dependencies/pybind11/CMakeLists.txt:98 (cmake_dependent_option)
This warning is for project developers.  Use -Wno-dev to suppress it.-- Performing Test HAS_MSVC_GL_LTCG
-- Performing Test HAS_MSVC_GL_LTCG - Success
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Project/CmakeProject/instant-ngp/build

少了一些东西,安装一个OptiX试试,我看大多数教程都安装了这玩意儿

安装的位置是D:\Program Files (x86)\NVIDIA\NVIDIA Corporation\OptiX SDK 7.5.0,需要把他放到系统变量中(N是变量名,V是变量值)

N:	OptiX_INSTALL_DIR
V:	D:\Program Files (x86)\NVIDIA\NVIDIA Corporation\OptiX SDK 7.5.0

光加上还不成,需要更新一下系统变量,set PATH=C: ,关闭 shell 再打开 echo %PATH% ,重新cmake,输出如下

D:\Project\CmakeProject\instant-ngp>cmake . -B build
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22000.
-- Targeting GPU architectures: 86
-- Module support is disabled.
-- Version: 9.0.0
-- Build type:
-- CXX_STANDARD: 14
-- Required features: cxx_variadic_templates
-- Could NOT find Vulkan (missing: Vulkan_LIBRARY Vulkan_INCLUDE_DIR) (found version "")
CMake Warning at CMakeLists.txt:118 (message):Vulkan was not found.  Neural graphics primitives will still compile andrun correctly, but DLSS will not be supported.-- Using Win32 for window creation
-- OptiX_INSTALL_DIR value: D:\Program Files (x86)\NVIDIA\NVIDIA Corporation\OptiX SDK 7.5.0
-- pybind11 v2.7.1
CMake Warning (dev) at D:/Program Files (x86)/CMake/share/cmake-3.23/Modules/CMakeDependentOption.cmake:89 (message):Policy CMP0127 is not set: cmake_dependent_option() supports full ConditionSyntax.  Run "cmake --help-policy CMP0127" for policy details.  Use thecmake_policy command to set the policy and suppress this warning.
Call Stack (most recent call first):dependencies/pybind11/CMakeLists.txt:98 (cmake_dependent_option)
This warning is for project developers.  Use -Wno-dev to suppress it.-- Configuring done
-- Generating done
-- Build files have been written to: D:/Project/CmakeProject/instant-ngp/build

OptiX完事了,但还是有不少问题,先看看Vulkan

  1. 同样下载安装,根据其默认安装目录,实际安装目录调整为 D:\Program Files (x86)\NVIDIA\VulkanSDK\1.3.224.1

  2. 同样添加环境变量,估计cmake提示,需要两个,分别为

    N:	Vulkan_LIBRARY
    V:	D:\Program Files (x86)\NVIDIA\VulkanSDK\1.3.224.1\LibN:	Vulkan_INCLUDE_DIR
    V:	D:\Program Files (x86)\NVIDIA\VulkanSDK\1.3.224.1\Include
    
  3. 同样更新环境变量(见上)

  4. 重新Cmake,输出如下

    D:\Project\CmakeProject\instant-ngp>cmake . -B build
    -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22000.
    -- Targeting GPU architectures: 86
    -- Module support is disabled.
    -- Version: 9.0.0
    -- Build type:
    -- CXX_STANDARD: 14
    -- Required features: cxx_variadic_templates
    -- Found Vulkan: D:/Program Files (x86)/NVIDIA/VulkanSDK/1.3.224.1/Lib/vulkan-1.lib (found version "1.3.224")
    -- Using Win32 for window creation
    -- OptiX_INSTALL_DIR value: D:\Program Files (x86)\NVIDIA\NVIDIA Corporation\OptiX SDK 7.5.0
    -- pybind11 v2.7.1
    CMake Warning (dev) at D:/Program Files (x86)/CMake/share/cmake-3.23/Modules/CMakeDependentOption.cmake:89 (message):Policy CMP0127 is not set: cmake_dependent_option() supports full ConditionSyntax.  Run "cmake --help-policy CMP0127" for policy details.  Use thecmake_policy command to set the policy and suppress this warning.
    Call Stack (most recent call first):dependencies/pybind11/CMakeLists.txt:98 (cmake_dependent_option)
    This warning is for project developers.  Use -Wno-dev to suppress it.-- Configuring done
    -- Generating done
    -- Build files have been written to: D:/Project/CmakeProject/instant-ngp/build
    

    似乎只剩下了cmake相关的问题

    根据提示执行 cmake --help-policy CMP0127

    D:\Project\CmakeProject\instant-ngp>cmake --help-policy CMP0127
    CMP0127
    -------.. versionadded:: 3.22``cmake_dependent_option()`` supports full :ref:`Condition Syntax`.The ``<depends>`` parameter accepts a :ref:`semicolon-separated list <CMake
    Language Lists>` of conditions.  CMake 3.21 and lower evaluates each
    ``condition`` as ``if(${condition})``, which does not properly handle
    conditions with nested paren groups.  CMake 3.22 and above instead prefer
    to evaluate each ``condition`` as ``if(<condition>)``, where ``<condition>``
    is re-parsed as if literally written in a call to ``if()``.  This
    allows expressions like::"A AND (B OR C)"but requires expressions like::"FOO MATCHES (UPPER|lower)"to be re-written as::"FOO MATCHES \"(UPPER|lower)\""Policy ``CMP0127`` provides compatibility for projects that have not
    been updated to expect the new behavior.This policy was introduced in CMake version 3.22.  CMake version
    3.23.2 warns when the policy is not set and uses ``OLD`` behavior.
    Use the ``cmake_policy()`` command to set it to ``OLD`` or ``NEW``
    explicitly... note::The ``OLD`` behavior of a policy is``deprecated by definition``and may be removed in a future version of CMake.
    

太抽象了,没咋看明白,面向Google编程,结合cmake输出,尝试n次,终于最后参考这篇博客解决了,精髓的是,必须要在报错行前面加才可以,好家伙好家伙

根据cmake提示,报错行在 dependencies/pybind11/CMakeLists.txt:98 (cmake_dependent_option),找到这个CMakeLists.txt 在97行添加以下三行代码

if(POLICY CMP0127)
cmake_policy(SET CMP0127 NEW)
endif()
cmake_dependent_option(PYBIND11_FINDPYTHON "Force new FindPython" OFF"NOT CMAKE_VERSION VERSION_LESS 3.12" OFF)

重新cmake

D:\Project\CmakeProject\instant-ngp>cmake . -B build
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.22000.
-- Targeting GPU architectures: 86
-- Module support is disabled.
-- Version: 9.0.0
-- Build type:
-- CXX_STANDARD: 14
-- Required features: cxx_variadic_templates
-- Using Win32 for window creation
-- OptiX_INSTALL_DIR value: D:\Program Files (x86)\NVIDIA\NVIDIA Corporation\OptiX SDK 7.5.0
-- pybind11 v2.7.1
-- Configuring done
-- Generating done
-- Build files have been written to: D:/Project/CmakeProject/instant-ngp/build

cmake成功,无报错,就是不造第4行的 Module support is disabled 是啥意思,确认一下

似乎没人问过这个问题,Github上贴出来的示例代码也有这句话,先不管它

接下来是下一句cmake命令,同样在developer command prompt里执行

instant-ngp$ cmake --build build --config RelWithDebInfo -j

一堆错,输出太多,放几个报错输出看一下

D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xutility(1260): error :expected a "(" [D:\Project\CmakeProject\instant-ngp\build\optix_program.vcxproj]detected during instantiation of "void std::_Adl_verify_range(const _Iter &, const _Sentinel &) [with _Iter=const char *, _Sentinel=const char *]"D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xlocale(1971): hereD:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xutility(1261): error :identifier "_Verify_range" is undefined [D:\Project\CmakeProject\instant-ngp\build\optix_program.vcxproj]detected during instantiation of "void std::_Adl_verify_range(const _Iter &, const _Sentinel &) [with _Iter=const char *, _Sentinel=const char *]"D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xlocale(1971): hereD:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xutility(1261): error :identifier "_Verify_range" is undefined [D:\Project\CmakeProject\instant-ngp\build\optix_program.vcxproj]detected during instantiation of "void std::_Adl_verify_range(const _Iter &, const _Sentinel &) [with _Iter=const char *, _Sentinel=const char *]"D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xlocale(1971): hereD:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.1.t
argets(785,9): error MSB3721: 命令“"D:\Program Files (x86)\NVIDIA\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin\nvcc.exe"
--use-local-env -ccbin "D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hos
tX64\x64" -x cu   -I"D:\Program Files (x86)\NVIDIA\VulkanSDK\1.3.224.1\Include" -I"D:\Project\CmakeProject\instant-ngp\
dependencies\dlss\include" -I"D:\Project\CmakeProject\instant-ngp\dependencies\glfw\include" -I"D:\Project\CmakeProject
\instant-ngp\dependencies\imgui" -I"D:\Project\CmakeProject\instant-ngp\dependencies\gl3w" -I"D:\Project\CmakeProject\i
nstant-ngp\dependencies" -I"D:\Project\CmakeProject\instant-ngp\dependencies\eigen" -I"D:\Project\CmakeProject\instant-
ngp\dependencies\filesystem" -I"D:\Project\CmakeProject\instant-ngp\dependencies\nanovdb" -I"D:\Project\CmakeProject\in
stant-ngp\dependencies\tinylogger" -I"D:\Program Files (x86)\NVIDIA\NVIDIA Corporation\OptiX SDK 7.5.0\include" -I"D:\P
roject\CmakeProject\instant-ngp\include" -I"D:\Project\CmakeProject\instant-ngp\dependencies\tiny-cuda-nn\include" -I"D
:\Project\CmakeProject\instant-ngp\dependencies\tiny-cuda-nn\dependencies" -I"D:\Project\CmakeProject\instant-ngp\depen
dencies\tiny-cuda-nn\dependencies\cutlass\include" -I"D:\Project\CmakeProject\instant-ngp\dependencies\tiny-cuda-nn\dep
endencies\cutlass\tools\util\include" -I"D:\Project\CmakeProject\instant-ngp\dependencies\tiny-cuda-nn\dependencies\fmt
\include" -I"D:\Program Files (x86)\NVIDIA\NVIDIA GPU Computing Toolkit\CUDA\v11.1\include"     --keep-dir x64\RelWithD
ebInfo -maxrregcount=0  --machine 64 -ptx -cudart shared --expt-relaxed-constexpr -std=c++14 -Xcompiler="/EHsc -Zi -Ob1
" -o optix_program.dir\RelWithDebInfo\raystab.ptx  -D_WINDOWS -DNDEBUG -DNGP_VULKAN -DGLFW_INCLUDE_VULKAN -DNGP_GUI -DN
GP_OPTIX -D"NGP_VERSION=\"1.0dev\"" -DTCNN_MIN_GPU_ARCH=0 -D"CMAKE_INTDIR=\"RelWithDebInfo\"" -D_MBCS -D"CMAKE_INTDIR=\
"RelWithDebInfo\"" "D:\Project\CmakeProject\instant-ngp\src\optix\raystab.cu"”已退出,返回代码为 1。 [D:\Project\CmakeProject\ins
tant-ngp\build\optix_program.vcxproj]
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xmemory(58): error : ex
pected a "(" [D:\Project\CmakeProject\instant-ngp\build\optix_program.vcxproj]

关键词 [D:\Project\CmakeProject\instant-ngp\build\optix_program.vcxproj] ,十有八九跟它有关。

终于找到原因,跟Optix没关系,是CUDA版本的问题,所以接下来要安装CUDA 11.6

装好后,重新cmake

cmake . -B build
cmake --build build --config RelWithDebInfo -j 16

等个三分钟的样子,完成无报错,输出太多,在这儿只放最后几行

    正在创建库 D:/Project/CmakeProject/instant-ngp/build/RelWithDebInfo/testbed.lib 和对象 D:/Project/CmakeProject/instant-ngp/build/RelWithDebInfo/testbed.exptestbed.vcxproj -> D:\Project\CmakeProject\instant-ngp\build\testbed.exepython_api.cu正在创建库 D:/Project/CmakeProject/instant-ngp/build/RelWithDebInfo/pyngp.lib 和对象 D:/Project/CmakeProject/instant-ngp/build/RelWithDebInfo/pyngp.exppyngp.vcxproj -> D:\Project\CmakeProject\instant-ngp\build\pyngp.cp39-win_amd64.pydBuilding Custom Rule D:/Project/CmakeProject/instant-ngp/CMakeLists.txt

3. instant-ngp

接下来就开始使用了

anaconda创建虚拟环境

conda create -n ngp python=3.9
conda activate ngp
pip install -r requirements.txt

示例数据

跑了一下狐狸的数据,感觉还可以

instant-ngp$ ./build/testbed --scene data/nerf/fox

在这里插入图片描述

自定义数据

  1. 安装 Colmap

自己要玩一下的话就离不开它,下载即用的,不用安装过程,依惯例,能自定义安装路径的软件都移到 D:\Program Files (x86)目录下。添加环境变量

N:	Path
V:	D:\Program Files (x86)\COLMAP\COLMAP-3.7-windows-cuda
  1. 计算位姿

    1. 将您的自定义图像集放在data/<image_set_name>

    2. transform.json从以下命令获取。将您的图像路径插入到<image/path>

    python scripts/colmap2nerf.py --colmap_matcher exhaustive --run_colmap --aabb_scale 16 --images <image/path>
    
    1. transform.json将在根文件夹中生成,将其拖放到您的data/<image_set_name>文件夹中
  2. 仿照 示例数据fox 重新组织数据结构和并修改 transform.json中影像路径
    在这里插入图片描述

在这里插入图片描述
把根目录下的transform.json移到位置后记得修改其中影像路径,同样仿照示例数据,类似 images/img.jpg就行

  1. 开跑

用自己拍的照片试一下

python scripts/colmap2nerf.py --colmap_matcher exhaustive --run_colmap --aabb_scale 16 --images data/earphone

重新组织数据,重写 transform.json ,run

instant-ngp$ ./build/testbed --scene data/nerf/earphone

在这里插入图片描述

注意事项

  1. 用手机拍的照片要保持横向拍摄或竖向拍摄,否则在估计位姿时会报错
  2. 需要一定的重叠度,小物件的话十几张几十张够了
  3. 像素太高可以考虑缩小一倍啥的再重新处理,代码如下
#include<iostream>
#include<icecream.hpp>
#include <vector>
#include <io.h>
#include <fstream>
#include <string>
#include <opencv2/opencv.hpp>
#include<opencv2/highgui.hpp>
#include <opencv2/highgui/highgui_c.h>  
using namespace std;/************************************************************************/
/*  获取文件夹下所有文件名输入:path    :   文件夹路径exd     :   所要获取的文件名后缀,如jpg、png等;如果希望获取所有文件名, exd = ""输出:files   :   获取的文件名列表
/************************************************************************/
void getFiles(string path, string exd, vector<string>& files)
{//文件句柄long long   hFile = 0;//文件信息struct _finddata_t fileinfo;string pathName, exdName;if (0 != strcmp(exd.c_str(), "")){exdName = "\\*." + exd;}else{exdName = "\\*";}if ((hFile = _findfirst(pathName.assign(path).append(exdName).c_str(), &fileinfo)) != -1){do{//如果是文件夹中仍有文件夹,迭代之//如果不是,加入列表// 不推荐使用,硬要使用的话,需要修改else 里面的语句/*if((fileinfo.attrib &  _A_SUBDIR)){if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)getFiles( pathName.assign(path).append("\\").append(fileinfo.name), exd, files );}else */{if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)//files.push_back(pathName.assign(path).append("\\").append(fileinfo.name)); // 要得到绝对目录使用该语句//如果使用files.push_back(fileinfo.name); // 只要得到文件名字使用该语句}} while (_findnext(hFile, &fileinfo) == 0);_findclose(hFile);}
}int main()
{string rootPath = "D:\\Project\\CmakeProject\\instant-ngp\\data\\nerf\\earphone_2";vector<string> imgLists;getFiles(rootPath, "jpg", imgLists);IC(imgLists);for (int i = 0; i < imgLists.size(); i++){cv::Mat img = cv::imread(rootPath + "\\" + imgLists[i]);cv::Mat dst;cv::resize(img, dst, cv::Size(img.cols / 2, img.rows / 2), 0, 0, cv::INTER_AREA);cv::imwrite(rootPath + "\\rsz_" + imgLists[i], dst);}return 0;
}

问题疑惑

  1. 不管用示例数据还是自己的数据。在相机位姿附近都会有照片的残影
  2. GUI 能出个教程就好了,有一些交互参数还是不太明白具体意义
  3. mesh效果太差不能用,导出的点云有亿点点大(是真的上亿了),打不开

http://chatgpt.dhexx.cn/article/ZgsWGvnS.shtml

相关文章

Houdini17 OptiX Denoise使用

Houdini17 OptiX Denoise使用 NVIDIA Optx Denoiser第一步 下载安装第二步 启用第三步 打开面板中的按钮一句卧槽走天下&#xff01; NVIDIA Optx Denoiser NVIDIA Optx Denoiser是一个后处理的算法&#xff0c;在Houdini17中可以被开启使用 第一步 下载安装 点击 Render/ D…

HTML中option和input的区别,option

手机评站网今天精心准备的是《option》&#xff0c;下面是详解&#xff01; option键是哪一个&#xff1f; 我的键盘上没有option字样的键&#xff0c;请问它指的是哪一个&#xff1f;&#xff1f;... 我的键盘上没有option字样的键&#xff0c;请问它指的是哪一个&#xff1f;…

十四、OPTIM

一、torch.optim torch.optim.Optimizer(params, defaults)优化器官网说明 由官网给的使用说明打开看出来优化器实验步骤&#xff1a; ①构造选择优化器 例如采用随机梯度下降优化器SGD torch.optim.SGD(beyond.parameters(),lr0.01)&#xff0c;放入beyond模型的参数param…

GPU开发环境搭建(CUDA和 OptiX)

Optix是英伟达一直推出的闭源光线跟踪&#xff08;rayTracing&#xff09;引擎 CUDA&#xff08;Compute Unified Device Architecture&#xff09;&#xff0c;是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构&#xff0c;该架构使GPU能够解决复…

Intel OpenImageDenoise VS Nvidia Optix 降噪结果对比

说明&#xff1a;原始图像&#xff08;Raytracing的直接输出结果&#xff0c;每一幅的左图&#xff09;为PPM格式&#xff0c; 一、OIDN 按照官方文档提示&#xff0c;先用ImageMagick转换成pfm格式&#xff0c;再将其作为oidn的输入&#xff0c;输出亦为pfm。 magick conve…

OTN技术及华为OTN设备简介

OTN技术及华为OTN设备简介 城域波分环四环五即将进行建设&#xff0c;本次工程采用华为华为下一代智能光传送平台OTN设备OptiX OSN 8800和OptiX OSN 6800。本文主要对OTN技术涉及的网络结构、复用方式、帧结构、ROADM技术和OptiX OSN 8800和OptiX OSN 6800设备特点及本次工程配…

【OptiX】第0个示例 OptixHello 学习Optix的工程配置以及基本框架

首先需要查看本博客的这篇文章&#xff1a;【Optix】Optix介绍与示例编译 把该安装的工程都安装好。可以按照本文所说的顺序创建和理解代码&#xff0c;也可以在本文末尾下载到已经配置好的代码。建议首先在本文末尾处下载代码&#xff0c;编译通过&#xff0c;这样配合文件看心…

OptiX-7入门教程

OptiX是英伟达专为光线追踪打造的SDK&#xff0c;但是他的官方案例都比较复杂&#xff0c;包含了大量初始化相关的代码&#xff0c;初学容易一头雾水。 本人跟着Github上的optiX7course一步步学习才算入门。这个课程是Siggraph 2019/2020上的OptiX课程&#xff0c;有源码&…

optix入门

射线追踪是embarrassingly parallel/perfectly parallel/pleasingly parallel的问题&#xff0c;就是说基本不用费劲就可以并行化。 射线追踪是指从某点发射射线&#xff0c;判断其与几何结构的交点&#xff0c;根据交点对图像进行渲染&#xff0c;或者计算。 nvidia optix是基…

jwt *

目录 一、jwt出现的原因及工作原理 1. JWT是什么 2. 为什么使用JWT 3. JWT的工作原理 4、jwt解决不需要登录就能直接访问的问题&#xff1a; 解决登录后树形菜单未出现的问题 &#xff1a; 二、jwt工具类介绍&#xff0c;三种场景 1、jwt工具类 2、三种场景 三、jwt…

JWT JWT

JWT&#xff08;JSON WEB TOKEN&#xff09; JWT的组成 header&#xff08;头部&#xff09;&#xff1a;中主要存储了两个字段 alg&#xff0c;typ。 alg表示加密的算法默认&#xff08;HMAC SHA256&#xff09;&#xff0c;typ表示这个令牌的类型默认为JWT。 payload&#…

JWT__

文章目录 JWT什么是JWT&#xff1f;JWT能做什么&#xff1f;认证流程JWT的结构是什么&#xff1f;使用代码要做一个JWT的例子引入pom依赖生成一个Token令牌验证令牌并从令牌中取出信息 JWT 什么是JWT&#xff1f; 官网地址:https://jwt.io/introduction/ 官方文档 JSON Web T…

JWT 和 JJWT 还傻傻的分不清吗

JWTs是JSON对象的编码表示。JSON对象由零或多个名称/值对组成&#xff0c;其中名称为字符串&#xff0c;值为任意JSON值。 JWT有助于在clear(例如在URL中)发送这样的信息&#xff0c;可以被信任为不可读(即加密的)、不可修改的(即签名)和URL - safe(即Base64编码的)。 JSON W…

【编码实战】2022年还在用jjwt操作jwt?,推荐你使用nimbus-jose-jwt,爽到飞起~

什么是nimbus-jose-jwt&#xff1f; nimbus-jose-jwt是基于Apache2.0开源协议的JWT开源库&#xff0c;支持所有的签名(JWS)和加密(JWE)算法。 对于JWT、JWS、JWE介绍 JWT是一种规范&#xff0c;它强调了两个组织之间传递安全的信息JWS是JWT的一种实现&#xff0c;包含三部分hea…

什么是JWT??

一、什么是JWT JWT(JSON WEB TOKEN)&#xff0c;通过数字签名的方式&#xff0c;以json对象为载体&#xff0c;在不同的服务终端之间安全的传输信息&#xff0c;用来解决传统session的弊端。 JWT在前后端分离系统&#xff0c;或跨平台系统中&#xff0c;通过JSON形式作为WEB应用…

JJWT实现令牌Token

登录实现方式 Session 详情&#xff1a; https://www.cnblogs.com/andy-zhou/p/5360107.html 会话的概念 会话就好比打电话&#xff0c;一次通话可以理解为一次会话。我们登录一个网站&#xff0c;在一个网站上不同的页面浏览&#xff0c;最后退出这个网站&#xff0c;也是…

3.JJWT

目录 1.JWT简介 2.JWT的结构 3.基于服务器的传统身份认证 4.基于token的身份认证 5. JWT的优势 6.Java中使用JJWT实现JWT 1.JWT简介 Json web token (JWT)&#xff0c; 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519)。该token被设计为紧凑且安全的…

JWT技术

JWT 一、 JWT 实现无状态 Web 服务 1、什么是有状态 有状态服务&#xff0c;即服务端需要记录每次会话的客户端信息&#xff0c;从而识别客户端身份&#xff0c;根据用户身份进行请求的处理&#xff0c;典型的设计如tomcat中的session。 例如登录&#xff1a;用户登录后&am…

token学习笔记(JWT、jjwt的使用及案例实现)

文章目录 1. 首先、了解什么是会话2. 会话跟踪的主要技术3. Token 令牌学习3.1 流程图3.2 token3.3 JWT(JSON web Tokens)Json web 令牌(规范)3.4 JWT结构3.5 JWT需要的依赖3.6 JWT的获取与验证流程3.7JWT的使用方式3.8 jjwt的使用&#xff08;创建JWT方式&#xff09;1. jjwt需…

JWT 进阶 -- JJWT

###jwt是什么? JWTs是JSON对象的编码表示。JSON对象由零或多个名称/值对组成&#xff0c;其中名称为字符串&#xff0c;值为任意JSON值。JWT有助于在clear(例如在URL中)发送这样的信息&#xff0c;可以被信任为不可读(即加密的)、不可修改的(即签名)和URL - safe(即Base64编码…