Edge で three.js を利用したデータが表示できなかった.
デバッガで追いかけると,WebGL を利用できない様なエラー.
Edge を再起動すると,うまく表示できるようになった.
何だったのだろう?
この画面は、簡易表示です
Edge で three.js を利用したデータが表示できなかった.
デバッガで追いかけると,WebGL を利用できない様なエラー.
Edge を再起動すると,うまく表示できるようになった.
何だったのだろう?
仮想マシンの Fedora 32 を 34 に更新.
動作を確認していると,GLUT を使用した .out がうまく動作しない.
起動はしているが,ウィンドウが表示されない?
コンパイルなどはできている.
実行するとコンソールにはウィンドウを表示する前の部分は表示される.
いろいろやったがダメで,再起動.
うまく表示する様になった.
2 年位前に Linux 環境 での GLUT はインストール した.
今回は Win10 環境に…
「Windows GLUT」で検索すると…
なかなかうまく書かれているものが見つからない.
次の所は古いまま?
GLUT – The OpenGL Utility Toolkit
以前見た時は更新されていない様に思ったが…
freeglut
そこからのリンク
freeglut Windows Development Libraries
その中の freeglut 3.0.0 MSVC Package が欲しかったもの.
…/bin/freeglut.dll を c:\Windows\SysWOW64 にコピー.
また,glut32.dll の頃の exe も動作する様に …\SysWOW64\glut32.dll としてもコピー.
…/bin/x64/freeglut.dll は c:\Windows\System32 にコピー.
これで,以前作成した exe がそのまま動作することを確認.
glut.h と freeglut*.h は,次の …\PlatformSDK\include\gl にコピー.
VC 8 C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl
VC 9 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl
VC10 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl
VC11 C:\Program Files (x86)\Windows Kits\8.0\Include\um\gl
VC12 C:\Program Files (x86)\Windows Kits\8.1\Include\um\gl
VC14 C:\Program Files (x86)\Windows Kits\8.1\Include\um\gl
VC141 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\gl
VC142 C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\gl
freeglut.lib は次の所にコピー.
C:\Program Files (x86)\Microsoft Visual Studio 8\VC\PlatformSDK\Lib
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib
C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x86 , x64
C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x86 , x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x86 , x64
2021/12/24
glut.h と freeglut*.h,freeglut.lib のコピー先は,お使いの環境によって異なります.
10.0.19041.0 は 2021/05 の頃での設定によるものです.
2021/12 では,10.0.22000.0 にコピーする必要があります.
3D データを保持するために,幾つかの形式での読み書きの時間を計測.
bool T_s_a_l (const GonsA& gnsa_,LPCTSTR pathName) { GonsA gnsa = gnsa_ ; double slt = 0 ; double s_t = 0 ; double l_t = 0 ; { // save ElapseTime et ; ::GonsA_To(gnsa,pathName) ; s_t = et.GetElapse() ; } { // load ElapseTime et ; GonsA ga = ::To_GonsA(pathName) ; l_t = et.GetElapse() ; } { slt = s_t + l_t ; } std::tout << ::Path_GetExtLow(pathName) << _T("\t") << slt << _T("\t") << l_t << _T("\t") << s_t << std::endl ; return true ; }
file ? =\\DS116\public\...\123test-layer2\123test-layer2.3ds ac 1.192 0.711 0.481 imo 4.206 3.195 1.011 x3d 2.213 0.461 1.752 wrl 0.831 0.55 0.281 3ds 0.571 0.37 0.201 ix3 1.853 1.092 0.761 ply 3.114 1.852 1.262 nxr 1.623 0.812 0.811 stl 0.2 0.15 0.05 ipl 4.947 4.436 0.511 file ? =\\DS116\public\...\123test-layer2\123test-layer2.3ds ac 1.202 0.711 0.491 imo 4.016 3.065 0.951 x3d 0.751 0.461 0.29 wrl 0.871 0.601 0.27 3ds 0.511 0.291 0.22 ix3 1.792 1.021 0.771 ply 3.145 1.923 1.222 nxr 1.512 0.701 0.811 stl 0.2 0.15 0.05 ipl 4.867 4.346 0.521 file ? =\\DS116\public\...\9LM-2U-J8F8B-3DLJ.001\9LM-2U-J8F8B-3DLJ.stl ac 16.214 9.504 6.71 imo 100.935 93.545 7.39 x3d 10.004 6.129 3.875 wrl 12.849 9.073 3.776 3ds 27.149 0.301 26.848 ix3 72.023 38.485 33.538 ply 77.751 62.049 15.702 nxr 21.912 9.974 11.938 stl 31.345 30.784 0.561 ipl 1893.04 1886.52 6.519 file ? =\\AS5202T\Home\gcc_test\Test\t_linux\3D\T_s_a_l\n2950x2450mm.dae ac 1.011 0.551 0.46 imo 2.624 2.013 0.611 x3d 1.031 0.33 0.701 wrl 0.772 0.511 0.261 3ds 0.881 0.511 0.37 ix3 2.053 1.182 0.871 ply 2.543 1.502 1.041 nxr 1.443 0.471 0.972 stl 0.41 0.35 0.06 ipl 19.458 18.917 0.541 file ? =\\AS5202T\Home\gcc_test\Test\t_linux\3D\T_s_a_l\n2950x2450mm.dae ac 1.012 0.551 0.461 imo 2.613 2.023 0.59 x3d 0.751 0.33 0.421 wrl 0.731 0.47 0.261 3ds 0.841 0.421 0.42 ix3 2.063 1.172 0.891 ply 2.623 1.652 0.971 nxr 1.593 0.491 1.102 stl 0.41 0.35 0.06 ipl 18.267 17.746 0.521 file ? =\\AS5202T\Home\gcc_test\Test\t_linux\3D\T_s_a_l\133118.x3d ac 18.266 8.762 9.504 imo 55.18 45.175 10.005 x3d 19.888 6.799 13.089 wrl 19.268 14.681 4.587 3ds 15.172 3.165 12.007 ix3 48.259 24.765 23.494 ply 69.459 38.655 30.804 nxr 21.321 6.74 14.581 stl 15.943 15.102 0.841 ipl 1290.08 1282.34 7.741
* この結果は私のコードでの時間で,一般的なコードとは異なると思う.
2020/11/11
'\\testxp\documents\Develop\VC_Test\T_gonsa\T_cmb_f' file ? =\\Z170S0\Temp\i_Tools.tmp\T_cmb_f\20201111\133118.x3d x3d 9.422 5.203 4.219 ipl 303.235 296.594 6.641 wrl 8.016 3.266 4.75 ix3 22.766 8.329 14.437 stl 5.687 5.265 0.422 ply 32.875 17.844 15.031 3ds 5.204 1 4.204 ac 7.733 4.062 3.671 mqo 165.907 162.438 3.469 nxr 11.812 5.047 6.765 imo 26.437 19.484 6.953 ipl 20.437 9.25 11.187 ply 34.625 13.844 20.781 stl 3.359 0.922 2.437 x3d 89.297 30.25 59.047 mqo 47.781 0 47.781 nxr 108.609 43.046 65.563 ix3 294.405 171.546 122.859 wrl 99.313 54.297 45.016 ac 56.454 12.922 43.532 imo 3057.28 3007.03 50.25 3ds 189.515 117.265 72.25 ipl 418.797 407.344 11.453 ix3 27.75 8.078 19.672 ply 43.546 23.093 20.453 x3d 20.391 7.485 12.906 ac 15.406 6.453 8.953 nxr 13.173 5.313 7.86 stl 6.656 5.125 1.531 wrl 13.767 7.282 6.485 imo 52.499 37.187 15.312 mqo 304.547 294.406 10.141 3ds 9.313 1.172 8.141 file ? =
FBX SDK 2020.1.1 があった.
今は時間が取れないので,ダウンロードとインストールまで.
いつもの様に,インクルードとライブラリのパスを変更 2020.1.1 に.
2020.1 であったワーニング LNK4099 は出なくなった?
GLUT を使用してのテストコードで,起動後データを切替える方法がないかと…
メニューの利用で何とかできるか?
glutCreateMenu などで検索したがわかりやすい情報が少なかった.
https:/
https:/
http:/
以前作成した雛型に対して追加.メニュー部分はほぼリンク先のコードのまま.
https:/
#include "glut_cb.hxx" #include <iostream> void cb_menu (int val) { std::cout << "menu val=" << val << std::endl ; } int main(int argc, char* argv[]) { ::glutInitWindowPosition(200,100) ; ::glutInitWindowSize (600,400) ; ::glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH) ; ::glutInit (&argc,argv) ; ::glutCreateWindow (argv[0]) ; ::glutReshapeFunc (cb_resize) ; ::glutDisplayFunc (cb_display) ; ::glutKeyboardFunc (cb_keyboard) ; ::glutMouseFunc (cs_mouse) ; { ::glutCreateMenu(cb_menu) ; ::glutAddMenuEntry("name 1",1) ; ::glutAddMenuEntry("name 2",2) ; ::glutAddMenuEntry("name 3",3) ; ::glutAttachMenu(GLUT_RIGHT_BUTTON) ; } ::cb_init () ; ::glutMainLoop () ; return 0 ; }
結局はこの方法ではなく,予めリスト化して キー入力 により切り替える方法に.
PyOpenGL を使おうとして pip コマンドを打つと,コマンドがない.
どうも pip が入っていないみたいで,次の様に入力してインストール.
sudo apt install python-pip
更に PyOpenGL のインストール.
pip install PyOpenGL
pip3 のインストールは
sudo apt install python3-pip
C:\WINDOWS\System32>cd C:\Users\Iwao\AppData\Local\Temp C:\Users\Iwao\AppData\Local\Temp>ssh -l admin -p 22 lxcdebian10 admin@lxcdebian10's password: Linux lxcdebian10 4.14.x #1 SMP Wed May 13 00:37:48 CST 2020 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Thu Jul 9 10:51:02 2020 from fe80::ed6f:4991:21c9:1882%eth0 admin@lxcdebian10:~$ cat /usr/bin/pip #!/usr/bin/python # GENERATED BY DEBIAN import sys # Run the main entry point, similarly to how setuptools does it, but because # we didn't install the actual entry point from setup.py, don't use the # pkg_resources API. from pip._internal import main if __name__ == '__main__': sys.exit(main()) admin@lxcdebian10:~$ cat /usr/bin/pip3 #!/usr/bin/python3 # GENERATED BY DEBIAN import sys # Run the main entry point, similarly to how setuptools does it, but because # we didn't install the actual entry point from setup.py, don't use the # pkg_resources API. from pip._internal import main if __name__ == '__main__': sys.exit(main()) admin@lxcdebian10:~$
「FBX SDK の脆弱性」の記事を先日読んでいた.
それで SDK を ダウンロード する所を見ると,対応版と思われる 2020.1 があった.
「追加のインクルードディレクトリ」と「追加のライブラリディレクトリ」を 2020.1 に.
ビルドすると大量の warning .
LibXml2-MD.lib(buf.obj) : warning LNK4099: PDB 'libxml2-md.pdb' が 'LibXml2-MD.lib(buf.obj)' で、または 'c:\Temp\...\Debug.141\Win32\libxml2-md.pdb' に見つかりません。デバッグ情報がないものとして、オブジェクトにリンクします。 Zlib-MD.lib(adler32.obj) : warning LNK4099: PDB 'zlib-md.pdb' が 'Zlib-MD.lib(adler32.obj)' で、または 'c:\Temp\...\Debug.141\Win32\zlib-md.pdb' に見つかりません。デバッグ情報がないものとして、オブジェクトにリンクします。 LibFbxSDK-MD.lib(OArchive.cpp.obj) : warning LNK4099: PDB 'alembic-md.pdb' が 'LibFbxSDK-MD.lib(OArchive.cpp.obj)' で、または 'c:\Temp\...\Debug.141\Win32\alembic-md.pdb' に見つかりません。デバッグ情報がないものとして、オブジェクトにリンクします。
2021/04/29
LNK4099 のエラーは,pdb がないため.
FBX SDK 2020.1.1 以降であれば用意されているので,それぞれにあったものをインストールする.
先日 GLUT でテクスチャ表示 の動作を確認していた時のこと.
Raspberry Pi ではうまく表示できることまで確認.
Fedora ではうまく読めない.
コードでテクスチャを生成しての表示ではうまくいく.
32 ビット色 BMP のコードは Synology NAS Web サーバなどでもそれなりに動作している.
32 bit exe ではうまく読み書きできているみたい.
Raspberry Pi (ARM) と Fedora (x64) で BITMAPFILEHEADER などを見ると 64 bit 環境でうまくない.
例えば bmih.biSize が x64 では 0x50 になっている(ARM では 0x28).
def_bmp.hxx が間違っているみたい.
どうも long の定義が Windows と Linux などでは異なるため.wiki 整数型
DWORD と LONG の定義を u_32 と i_32 に変更(u_32 ,i_32 は i_define.hxx で定義している).
//typedef unsigned long DWORD; typedef u_32 DWORD; //typedef long LONG; typedef i_32 LONG;
今度はテクスチャ.次の様なコードで面に貼り付け.
#include "glut_cg.hxx" #include "gonsprmt.hxx" #include "i_dib_f.hxx" i_DIB tex_01 ; int main(int argc, char* argv[]) { { tstring test_bmp = _T("./Tex01.bmp") ; // test_bmp = _T("/run/user/1000/gvfs/smb-share:server=ds116.local,share=web/i_Tools/Doc/blog/3D_Data/Tex01.bmp") ; #ifdef _MSC_VER test_bmp = _T("//DS116/web/i_Tools/Doc/blog/3D_Data/Tex01.bmp") ; #endif tex_01 = ::DIB_Load(test_bmp.c_str()) ; } { GonsA gnsa ; { Gons1 box = ::Gons_Box(Vd3(5,0,5)) ; box.SetColor(0xffffff) ; gnsa.push_back(box) ; } ::set_GonsA(gnsa) ; ::set_Extent(::GonsA_GetExtent(gnsa)) ; { C_glut* gm = ::get_c_glut() ; gm->BG = Vd4(0.9) ; gm->EP = Vd3(0,-10,0) ; } } ::glutInitWindowPosition(200,100) ; ::glutInitWindowSize (600,600) ; ::glutInitDisplayMode (GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH) ; ::glutInit (&argc,argv) ; ::glutCreateWindow (argv[0]) ; ::glutReshapeFunc (cv_resize) ; ::glutDisplayFunc (cg_display) ; ::glutKeyboardFunc (cv_keyboard) ; ::glutMouseFunc (cv_mouse) ; ::glutMotionFunc (cv_motion) ; ::cv_init () ; { ::glPixelStorei(GL_UNPACK_ALIGNMENT,1) ; ::glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,tex_01.GetWidth(),tex_01.GetHeight(),0,GL_RGB,GL_UNSIGNED_BYTE,tex_01.GetP_Bits()) ; ::glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST) ; ::glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST) ; ::glEnable(GL_TEXTURE_2D) ; } ::glutMainLoop () ; return 0 ; }
::glTexImage2D の指定と Tex01.bmp の形式が合っていないため
32 ビット色の画像なので ::glTexImage2D の GL_RGB を GL_RGBA に.
色の順番が違うので ::glTexImage2D を見ると GL_BGRA_EXT があったのでこれを指定.