Does the script Ronie sent work for you Volkert? Alexandre -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> On Dec 1, 2015, at 1:11 AM, Volkert <volk...@komponentenwerkstatt.de> wrote: > > That is cool. Thank you ... > > BW, > Volkert > > On 01.12.2015 01:25, Ronie Salgado wrote: >> Hello, >> >> I added a fallback method for the selection, so the missing extension should >> not be required. The following script should work in a playground. >> >> =========================================================== >> >> view := RWView new. >> elements := RWCube elementsOn: (1 to: 50). >> RWCubeLayout on: elements. >> elements do: [:el | >> el when: RWMouseButtonDown do: [ :ev | >> ev element color: WDColor red. >> ev element changed. >> ] >> ]. >> >> view addAll: elements. >> view addInteraction: RWMouseKeyControl. >> view open >> >> ============================================================ >> I tested it on: >> >> glxinfo >> OpenGL vendor string: Intel Open Source Technology Center >> OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile >> >> cat /proc/cpuinfo >> model name : Intel(R) Core(TM) i5-3230M CPU @ 2.60GHz >> >> Best regards, >> Ronie >> >> 2015-11-29 3:33 GMT-03:00 Ben Coman <b...@openinworld.com >> <mailto:b...@openinworld.com>>: >> Interesting stuff Ronie. Hopefully we'll gain a lot in portability with >> Vulkan. What I find interesting is the use of Standard Portable >> Intermediate Representation (SPIR) common to Vulkan graphics API and OpenCL >> compute API. [1] is an interesting article outlining this. [2] indicates a >> few programming languages will compile direct to SPIR and I wonder if Pharo >> might be able to do the same? New technologies (SPIR) => new opportunities >> to draw the curious to Pharo. Wild speculation... be able to debug a shader >> on a SPIR simulator running inside Pharo. >> >> (btw, apparently SPIR is pronounced "spear" not to be confused with our >> "spur" vm) >> >> [2] p39,40 says "Debug information via standardized API calls" and "Khronos >> encouraging open community of tools e.g. shader debugging" >> which may provide an opportunity to produce a shader debugging tool for use >> by individual developers in a corporate environment that constrains their >> language choice for the main application, but have more flexibility to >> choice their tools. So potentially once exposed to Pharo we hook some of >> them. Maybe interesting debugging info could be gathered that could be >> presented by Roassal. >> >> [3] p4 says "SPIR-V is fully set up to support multiple source languages" >> and "SPIR-V also enables development of new experimental languages" and [4] >> says "Enable third-party code generation targeting OpenCL platforms without >> going through OpenCL C." So maybe(?) this makes it easier to get fast >> computing within Pharo using more of our own tools? >> >> [1] >> http://www.pcper.com/reviews/General-Tech/GDC-15-What-Vulkan-glNext-SPIR-V-and-OpenCL-21 >> >> <http://www.pcper.com/reviews/General-Tech/GDC-15-What-Vulkan-glNext-SPIR-V-and-OpenCL-21> >> [2] >> https://www.khronos.org/assets/uploads/developers/library/2015-sigasia/SIGGRAPH-Asia_Nov15.pdf >> >> <https://www.khronos.org/assets/uploads/developers/library/2015-sigasia/SIGGRAPH-Asia_Nov15.pdf> >> [3] https://www.khronos.org/registry/spir-v/papers/WhitePaper.pdf >> <https://www.khronos.org/registry/spir-v/papers/WhitePaper.pdf> >> [4] https://www.khronos.org/faq/spir <https://www.khronos.org/faq/spir> >> >> cheers -ben >> >> On Sun, Nov 29, 2015 at 6:13 AM, Ronie Salgado <ronies...@gmail.com >> <mailto:ronies...@gmail.com>> wrote: >> Hi Stef, >> >> I think that this is important that people can pick different ("compatible") >> driver/framework back-end. >> You see if Woden is only built to work on something that does not run on mac >> or windows then >> it will be limited. >> The problem is not Window or Mac. The problem is Linux. >> >> We are having some discussion on this with Alex on this. I am going to try >> to remove the requirement on that extension by providing a fallback method >> for the selection, that does not require that extension. Then I will test it >> in my laptop by selecting the Intel driver (My laptop has the integrated >> Intel card in the CPU and a dedicated AMD graphics cards). >> >> However Woden-Roassal relies a lot on hardware instancing support to be able >> to draw a lot of dynamic cubes. The alternative is to use a vertex buffer >> and index buffer that holds all of the transformed visible geometry that is >> updated on each frame in the worst case scenario. In >> the best case scenario (static cubes or objects), they are >> updated only once. This relies a lot on the CPU because all of the >> transformations has to be done manually on the CPU. >> >> This is not a hardware problem, this is a drivers problem because OpenGL is >> huge, complex, unefficient, does not represent the graphics hardware. The >> Mesa Open Source guys are not able to keep pace with the extension hell >> known as OpenGL. In Ubuntu 14.04 Mesa supports up until OpenGL 3.0 >> compatibility profile, and OpenGL 3.1 core profile. The current version of >> OpenGL is 4.5. Each version of OpenGL has a different version of GLSL >> (OpenGL Shader Language), which makes harder to stick with one reasonable >> subset and then support features depending on which hardware you are >> running. In contrast, if you are developing for Direct3D in Windows, you >> only need to choose between Direct3D 9(Windows XP), 11(Vista I think/7/8), >> 12(Windows 10) and thats it. In Direct3D you do not have to deal with >> hardware vendor extensions because there are not extensions. >> >> By using instancing, I have a buffer with the geometry of a single cube or >> shape. Then I have another buffer with the transformation and color of each >> cube or simple shape. When updating the position, size or color of an >> element I only have to change a single entry in this buffer. >> >> The original Roassal 3D used a draw call per element. This more flexible, >> but a lot slower. 20.000 cubes in Roassal3D vs 300.000-600.000 in >> Woden-Roassal visibles at the same time. The overhead of a draw call is >> produced because some validations are made by the OpenGL driver for each >> draw call. >> >> A draw call per-element is only reasonable when using Direct3D 12(Window), >> Metal(iOS, OS X) or Vulkan (Linux, Windows and mobiles) because there are >> designed to remove the overhead of draw calls. This is the approach that I >> am going to use in Woden 2 via an abstraction layer that I am making in >> C/C++ above the graphics API. Currently I have a backend for Direct3D 12 and >> OpenGL 4.x (it should be possible to use OpenGL 3.3, but I need to test it). >> I made the OpenGL backend because Vulkan has not been released yet. It is >> impossible to get the best performance by using the OpenGL backend because >> of its design. In theory it should be possible to make a backend for OpenGL >> 2.0 and OpenGL 2.0 ES, but it will be really hard to do. And it will not >> have a good performance. >> >> Greetings, >> Ronie >> >> >> 2015-11-28 14:41 GMT-03:00 stepharo < >> <mailto:steph...@free.fr>steph...@free.fr <mailto:steph...@free.fr>>: >> Ronie >> >> I think that this is important that people can pick different ("compatible") >> driver/framework back-end. >> You see if Woden is only built to work on something that does not run on mac >> or windows then >> it will be limited. >> >> Stef >> >> Le 25/11/15 00:14, Ronie Salgado a écrit : >>> >>> What do you mean with "modern"? >>> By modern I mean a graphics card a with graphics driver that supports at >>> least OpenGL 4.x. That Intel HD graphics card is capable of supporting at >>> least OpenGL 4.2, but the Open Source Mesa driver gives you support up >>> until OpenGL 3.1. Unfortunately, unlike with AMD or NVIDIA graphics cards, >>> the open source driver is the official driver. >>> >>> Woden-Roassal requires integer arithmetic in shaders which is used to >>> support the selection of objects. Integer arithmetics in shaders requires >>> at least OpenGL 3.3, or the missing extension for which you are receiving >>> the error. >>> >>> It is not required by the Woden-Core api, so you should be able to try the >>> following in a workspace: >>> >>> WDFPSSimpleExample6 new open >>> >>> My notebook with an HD Graphics 4400 has no problems with all "three.js" >>> demos found here <http://threejs.org/>http://threejs.org/ >>> <http://threejs.org/>. >>> Three.js or any WebGL based example is a bad test for that graphics card. >>> WebGL is based in OpenGL ES 2.0 which is a subset of OpenGL 2.0. This is a >>> very old technology for that graphics card. >>> >>> Woden will be using Vulkan in the future. According to this Phoronix >>> article ( >>> <http://www.phoronix.com/scan.php?page=news_item&px=LunarG-Vulkan-AMA>http://www.phoronix.com/scan.php?page=news_item&px=LunarG-Vulkan-AMA >>> <http://www.phoronix.com/scan.php?page=news_item&px=LunarG-Vulkan-AMA>), >>> Valve has already made a proper Vulkan driver for the Intel graphics cards. >>> We only need an official release of the Vulkan spec. >>> >>> Best regards >>> Ronie >>> >>> 2015-11-24 18:50 GMT-03:00 Volkert < >>> <mailto:volk...@komponentenwerkstatt.de>volk...@komponentenwerkstatt.de >>> <mailto:volk...@komponentenwerkstatt.de>>: >>> My notebook with an HD Graphics 4400 has no problems with all "three.js" >>> demos found here <http://threejs.org/>http://threejs.org/ >>> <http://threejs.org/>. >>> >>> What do you mean with "modern"? >>> >>> <Mail Attachment.png> >>> >>> >>> On 24.11.2015 22:25, Ronie Salgado wrote: >>>> You need a modern graphics card. Open source graphics drivers are not >>>> supported because there are very behind in their implementations of OpenGL. >>>> >>>> >>>> 2015-11-24 17:28 GMT-03:00 Volkert < >>>> <mailto:volk...@komponentenwerkstatt.de>volk...@komponentenwerkstatt.de >>>> <mailto:volk...@komponentenwerkstatt.de>>: >>>> But not on my linux box .... ubuntu 14.04 :-( >>>> >>>> <Mail Attachment.png> >>>> >>>> >>>> >>>> On 24.11.2015 21:03, Alexandre Bergel wrote: >>>>> Woden works in Pharo 5.0 >>>>> I have just tried. >>>>> >>>>> Alexandre >>>>> -- >>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >>>>> Alexandre Bergel <http://www.bergel.eu/>http://www.bergel.eu >>>>> <http://www.bergel.eu/> >>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >>>>> >>>>> >>>>> >>>>>> On Nov 24, 2015, at 3:15 PM, Volkert < >>>>>> <mailto:volk...@komponentenwerkstatt.de>volk...@komponentenwerkstatt.de >>>>>> <mailto:volk...@komponentenwerkstatt.de>> wrote: >>>>>> >>>>>> Cool ... >>>>>> >>>>>> Which Pharo Version? I tried Pharo 4.0 and got this error: >>>>>> >>>>>> <edcefcdd.png> >>>>>> >>>>>> >>>>>> On 24.11.2015 12:50, Alexandre Bergel wrote: >>>>>>>> Do we have a tutorial? i found only >>>>>>>> <http://woden.ronie.cl/>http://woden.ronie.cl <http://woden.ronie.cl/>. >>>>>>>> >>>>>>>> What about mouse control and object selection. It that possible? >>>>>>> >>>>>>> Yes. >>>>>>> >>>>>>> To load Woden: >>>>>>> >>>>>>> Gofer new smalltalkhubUser: 'ronsaldo' project: 'Woden'; package: >>>>>>> 'ConfigurationOfWoden'; load. (Smalltalk at: #ConfigurationOfWoden) >>>>>>> loadBleedingEdge. >>>>>>> >>>>>>> Try: >>>>>>> =-=-=-==-=-=-==-=-=-==-=-=-= >>>>>>> v := RWView new. >>>>>>> >>>>>>> 1 to: 100 do: [ :i | >>>>>>> e := RWCube element. >>>>>>> e when: RWMouseButtonDown do: [ :ev | >>>>>>> ev element shape color: WDColor green. >>>>>>> ev element changed. >>>>>>> ]. >>>>>>> v add: e. >>>>>>> ]. >>>>>>> RWXZGridLayout on: v elements. >>>>>>> v addInteraction: RWMouseKeyControl. >>>>>>> v camera position: (WDVector3 x: 0.0 y: 0.0 z: 3.0). >>>>>>> v open >>>>>>> =-=-=-==-=-=-==-=-=-==-=-=-= >>>>>>> Use the keys A S D W and the moose to navigate. Click on cube to make >>>>>>> them green >>>>>>> >>>>>>> <Mail Attachment.png> >>>>>>> >>>>>>> Cheers, >>>>>>> Alexandre >>>>>>> >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> BW, >>>>>>>> Volkert >>>>>>>> >>>>>>>> On 22.11.2015 21:10, Alexandre Bergel wrote: >>>>>>>>> We have also put quite some effort on Woden, a 3d engine for Pharo… >>>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> Alexandre >>>>>>>>> >>>>>>>>> >>>>>>>>>> On Nov 22, 2015, at 2:56 PM, Dimitris Chloupis < >>>>>>>>>> <mailto:kilon.al...@gmail.com>kilon.al...@gmail.com >>>>>>>>>> <mailto:kilon.al...@gmail.com>> wrote: >>>>>>>>>> >>>>>>>>>> its possible via my Ephestos project, to render to video or real >>>>>>>>>> time but the project is still very much a WIP. Its doable but >>>>>>>>>> require some python knowledge and knowledge of Blender UI and API. I >>>>>>>>>> will be making a true Pharo API for it fairly soon but as you can >>>>>>>>>> imagine these things take time. >>>>>>>>>> >>>>>>>>>> On Sun, Nov 22, 2015 at 6:35 PM Volkert < >>>>>>>>>> <mailto:volk...@komponentenwerkstatt.de>volk...@komponentenwerkstatt.de >>>>>>>>>> <mailto:volk...@komponentenwerkstatt.de>> wrote: >>>>>>>>>> Is this possible with Pharo? >>>>>>>>>> >>>>>>>>>> <http://www.asterank.com/3d/>http://www.asterank.com/3d/ >>>>>>>>>> <http://www.asterank.com/3d/> >>>>>>>>>> >>>>>>>>>> BW, >>>>>>>>>> Volkert >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>>> >>> >>> >> >> >> >> >