Cool!

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.



> On Dec 1, 2015, at 1:56 PM, Volkert <volk...@komponentenwerkstatt.de> wrote:
> 
> Yes. I tried it and it works on my linux system ... :-)
> 
> On 01.12.2015 16:22, Alexandre Bergel wrote:
>> Does the script Ronie sent work for you Volkert?
>> 
>> Alexandre
>> -- 
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu <http://www.bergel.eu/>
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>> 
>> 
>> 
>>> On Dec 1, 2015, at 1:11 AM, Volkert < 
>>> <mailto:volk...@komponentenwerkstatt.de>volk...@komponentenwerkstatt.de 
>>> <mailto: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 < 
>>>> <mailto:b...@openinworld.com>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
>>>>  
>>>> <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
>>>>  
>>>> <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
>>>>  <https://www.khronos.org/registry/spir-v/papers/WhitePaper.pdf>
>>>> [4]  <https://www.khronos.org/faq/spir>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 < 
>>>> <mailto:ronies...@gmail.com>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
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to