version de threejs supported by autodesk-forge viewer - three.js

which version of threejs supports forge viewer?
I need to use threejs version 130 or higher, are these versions compatible with forge viewer?

Forge Viewer uses self-managed three.js r71. Currently, our engineering team is working hard to support the newer three.js. See here for some updates.
https://www.autodesk.com/autodesk-university/class/Forge-Road-Map-2021
However, you may check these two blog posts to know how to leverage newer three.js using the es5 module.
https://forge.autodesk.com/blog/consume-aec-data-which-are-model-derivative-api
https://forge.autodesk.com/blog/how-add-newest-threejs-features-forge-viewer

Related

What are the latest versions of OpenGL ES supported by emscripten, and how do I use them?

I am trying to make use of some ES 3.1 features, and it's unclear if this is supported:
I notice that there is an OpenGL ES 3.1 header in the emscripten repository which defines some of the functions I'm looking for, and I can include them successfully in my project. However, they are not available when I try to link:
error: undefined symbol: glDispatchCompute (referenced by top-level compiled C/C++ code)
warning: _glDispatchCompute may need to be added to EXPORTED_FUNCTIONS if it arrives from a system library
The documentation says that OpenGL ES3 is supported if I specify -s FULL_ES3=1 (which I am doing).
Since there are headers for it, is this functionality available? If so, how do I enable support for it? (Does it require manually loading extensions or enabling experimental support in emscripten, for example?)
First thing to realize, is that decent Browsers currently implement only WebGL 1.0 (based on OpenGL ES 2.0) and WebGL 2.0 (based on OpenGL ES 3.0). So that Emscripten SDK may implement only features presented by WebGL 2.0 + extensions, and, unfortunately, Compute Shaders are not presented in any way in WebGL (and there are no more plans to add this functionality in future).
By the way, WebGL 2.0 support has been added to Safari 15 (iOS 15) only this (2021) year, so that even OpenGL ES 2.0 will not work on all devices.
I notice that there is an OpenGL ES 3.1 header in the emscripten
The extra <GLES3\gl3*.h> headers are there not because Emscripten implements all of them, but because this is a common way to distribute OpenGL ES 3.x headers that existing applications may rely on to conditionally load / use OpenGL ES 3.x functions at runtime, when they available.
The documentation says that OpenGL ES3 is supported if I specify -s FULL_ES3=1 (which I am doing).
I think that documentation is more or less clear about what FULL_ES3=1 adds:
To enable OpenGL ES 3.0 emulation, specify the emcc option -s FULL_ES3=1 when linking the final executable (.js/.html) of the project.
This adds emulation for mapping memory blocks to client side memory.
There is no word about OpenGL ES 3.1 here, nor a reason to expect a wonder from Emscripten, as I can barely imagine a reasonable hardware-accelerated way to emulate things like Compute Shaders on top of OpenGL ES 3.0. And software emulation would be certainly of no use for most applications.
WebGPU 1.0 that promised to appear mid '2022, is more capable than WebGL 2.0. So that WebGPU developers already see that at one time native WebGL 2.0 implementation in the Browsers could be replaced by a WebAssembly module implementing this legacy API on top of WebGPU - but in some very distant future. The same could also bring OpenGL ES 3.1/3.2 features to Emscripten SDK - at least theoretically, if somebody will be still interested to work on this.

How to use AdaptiveCards v1.1 in BotBuilder Node.js SDK 4

I would like to use the newest version 1.1 of AdaptiveCards in the BotBulder Node.js SDK 4 to use the new features such as vertical alignment. However, the CardFactory.adaptiveCard only allows version 1.0.
Is it possible to use the AdaptiveCards SDK itself to render AdaptiveCards for use in chat? I am using AdaptiveCards in Telegram, hence they need to be rendered into an image. I tried using the AdaptiveCards method .render but failed due to the issue described here.
If not, is this planned for the future?
The BotFramework SDK does not currently support the most recent release of AdaptiveCards - v1.1; however, someone has just submitted a feature request to the development team on GitHub to incorporate the updated version into the SDK. Hopefully, the newest release will be developed into the framework and will work with the CardFactory soon.
In the meantime, the user who submitted the feature request also suggested a possible workaround. They recommend creating a DOM object which will allow you to render the JSON card into HTML using the AdaptiveCards Library. Then, you can use Puppeteer - a high-level API to control Chrome - to render the HTML and convert it into an image. The image can then be sent to the user in the chat in place of a card. Unfortunately, you do lose a lot of the card's functionality such as actions, but you will be able to use some of the new formatting features in the new release of AdaptiveCards. I would recommend looking at this post and the Puppeteer Repository if you think this solution may work for you.

Can I use pre-"profiles" OpenGL versions on Macs?

I want to use a deprecated GL function - glPushAttrib. Ideally, I'd do that by using the Compatibility profile of a recent GL version, but Macs don't support that. So I'm happy to settle for using an old GL version, from before GL profiles existed. My question, though, is: does Mac support that?
Note: Don't tell me that I shouldn't use glPushAttrib unless you're able to link to a good library that replaces it. I don't want to write my own, and using a full-blown engine would be much more trouble than it's worth for my usecase ;)
I found the answer in the OpenGL wiki:
MacOSX gives you a choice: core profile for versions 3.2 or higher, or just version 2.1

How to load a glTF file in OpenGL ES

So after spending time looking around, I am not sure how I would even go about loading and using a glTF file I have found and want to use for my OpenGL ES 3.0 program.
Are there are loaders or am I charge of extracting all the data from the glTF file?
EDIT:
I am developing on Android API 24 with NDK to use OpenGL ES 3.0
AFAIK, as of today (April 2017), there is no easy/official way to load & draw a GLTF model in native/mobile environments - the webgl ecosystem is currently more friendly.
GLTF being quite young, you would have to find some code around, or build your own.
Another alternative would be to try to use assimp to convert your GLTF model to a format that you can easily display.
Check out the ATW Vulkan Sample from Khronos Group

Update OpenGL libraries on windows

I'm using a 3rd party DLL which uses OpenGL. Right now that 3rd party does not work correctly as the display does not refresh correctly. I came to suspect that the OpenGL library isn't correctly installed or may be outdated.
Is there a way to update the OpenGL library on windows? Is there like an official site which will hold the correct opengl.dll file or something like that?
I believe the OpenGL libraries are just part of the drivers that ship with your graphics card. Upgrading your graphics drivers should upgrade your OpenGL stuff to the latest your card supports.
OpenGL should be up to date on Windows.
However, if you are getting display/refresh problems, and they're only occuring on windows, this is most likely an issue with your graphics driver.
Try updating to your latest OpenGL graphics driver. This fixes many OpenGL issues on Windows.
opengl.dll is part of your display card driver. Windows comes with a default opengl.dll that offers very little acceleration. Re installing the graphics card driver or upgrading to the latest version should take care of your problem.
OpenGL is implemented in the graphics driver. If you want to use the latest OpenGL version as a developer you download and use GLEW (http://glew.sourceforge.net/) as a normal library. This will give you access to cross platform OpenGL 4.1 or whatever version your card supports.

Resources