Lazarus

Announcements => Third party => Topic started by: BlackShark on May 18, 2019, 08:22:16 am

Title: Black Shark Graphics Engine
Post by: BlackShark on May 18, 2019, 08:22:16 am
Hello!

I am hurry to share my first official release!
 
Black Shark Graphics Engine is a simple 2D and 3D engine written in Pascal for developers to produce applications utilising hardware-accelerated graphics. It supports Lazarus (versions >= 2.0) and Delphi (Community Edition 10.3, another versions haven't been tested).

More information on my site: bshark.org (http://bshark.org)

Best regards,
BlackShark
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on May 28, 2019, 10:13:04 am
New minor version 1.01:
- found and removed a bug in build of a path;
- edited test of KD-tree - it was reduced 2d level displayed objects, otherwise they intersect scrollbars;
- gallery was updated.

Best regards,
BlackShark
Title: Re: Black Shark Graphics Engine
Post by: nouzi on May 28, 2019, 02:24:07 pm
BlackShark  nice job
i test this library 

It works but it is a small problem
Example :
When you test a fish or globe scene and go to another scene and go back the graphic disappears
Title: Re: Black Shark Graphics Engine
Post by: nouzi on May 28, 2019, 02:42:53 pm

I think it's a leak in  memory
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on May 28, 2019, 03:02:03 pm
BlackShark  nice job
i test this library 

It works but it is a small problem
Example :
When you test a fish or globe scene and go to another scene and go back the graphic disappears

Thank you!

I have found out: some tests with a canvas rotate a frustum for its testing, but when you return back to 3d-test, the frustum remains rotated. If you will insert
Code: Pascal  [Select][+][-]
  1. Scene.Frustum.Angle := vec3(0.0, 0.0, 0.0);
when the test is creating you get the same image what you saw in begining.
I will think about the problem.
Title: Re: Black Shark Graphics Engine
Post by: nouzi on May 28, 2019, 03:29:52 pm
I think it's a leak in  memory
start application                                                Memory ~ 73.972
after change screen  to test  mesh                   Memory ~ 74.308
after back to screen  to test  Eath  mesh          Memory ~ 73.492
after back to screen  to test  mesh                   Memory ~ 73.516
after back to screen  to test  Eath  mesh          Memory ~ 73.648
after change screen  to test  mesh                   Memory ~ 74.696
after back to screen  to test  Eath  mesh          Memory ~ 73.676

   test         | Eath  mesh  |   mesh   
--------------------------------------------
                  |   73.972       | 74.308
                  |   73.492       | 73.516
                  |   73.648       | 74.696
                  |   73.676       |

                             
                                                             
                                                             
                                                             
                                                                         



Title: Re: Black Shark Graphics Engine
Post by: BlackShark on May 28, 2019, 08:43:28 pm
I think it's a leak in  memory
start application                                                Memory ~ 73.972
after change screen  to test  mesh                   Memory ~ 74.308
after back to screen  to test  Eath  mesh          Memory ~ 73.492
after back to screen  to test  mesh                   Memory ~ 73.516
after back to screen  to test  Eath  mesh          Memory ~ 73.648
after change screen  to test  mesh                   Memory ~ 74.696
after back to screen  to test  Eath  mesh          Memory ~ 73.676

   test         | Eath  mesh  |   mesh   
--------------------------------------------
                  |   73.972       | 74.308
                  |   73.492       | 73.516
                  |   73.648       | 74.696
                  |   73.676       |

There are not leaks: memory is swimming slightly, but on 4-5 iteration of select of the tests remains on the same level. Furthermore, in Delphi I always use ReportMemoryLeaksOnShutdown := true and there memory leaks are not shown. Any way, thank you very much for testing.

I improved a little more:
- was improved mechanism releasing of textures - texture-singleton is released if it is not used already;
- 3d tests were changed - it added reset of the frustum orientation;
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on July 02, 2019, 03:21:31 pm
Hello!

I am glad to announce new version 1.02 of my engine (bshark.org (http://bshark.org)):

The version while hasn't tested on Linux.

Best regards,
BlackShark
Title: Re: Black Shark Graphics Engine
Post by: Akira1364 on July 02, 2019, 05:22:10 pm
Nice! Always great to see more libraries in this category for Pascal, especially ones as fully featured as yours.
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on July 02, 2019, 08:25:58 pm
Nice! Always great to see more libraries in this category for Pascal, especially ones as fully featured as yours.
Thank you for kind words! I hope it will be useful for someone.
Title: Re: Black Shark Graphics Engine
Post by: devEric69 on July 03, 2019, 11:02:47 am
Quote
Thank you for kind words! I hope it will be useful for someone.

Most likely for 3D losers, like me. Thank you very much :) .
Title: Black Shark Graphics Engine
Post by: BlackShark on May 03, 2021, 04:14:10 pm
I am glad to announce new version 2.0 of my engine bshark.org (http://bshark.org):

Best regards,
BlackShark
Title: Re: Black Shark Graphics Engine
Post by: Delphi100 on May 06, 2021, 04:34:12 am
Great Works!
Can you increase the anti-aliasing function of the image? :)
like C# GDI+:
 graphics.SmoothingMode = SmoothingMode.AntiAlias;
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on May 10, 2021, 10:03:26 am
Great Works!
Thanks!
Can you increase the anti-aliasing function of the image? :)
like C# GDI+:
 graphics.SmoothingMode = SmoothingMode.AntiAlias;
I have concentrated the settings in the class bs.config.BSConfig and will continue to expand them there. Now unfortunately there is only one options of smoothing. I will try to improve smoothing modes, for example add the number of samples for supersampling. I also want to add to the settings other methods of full screen antialiasing that I previously implemented on shaders.
Title: Re: Black Shark Graphics Engine
Post by: Akira1364 on May 15, 2021, 08:47:04 pm
Your website seems to be offline, currently.
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on May 16, 2021, 09:00:33 am
Your website seems to be offline, currently.
Thanks!
I'm figuring with this problem. Today I'm planning a new release.
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on May 16, 2021, 02:33:23 pm
I am glad to present a new minor version 2.01 of my engine https://bshark.org (https://bshark.org):

if you have a problem initialization in Linux, try to accomplish the next commands:
     
Code: Text  [Select][+][-]
  1.         sudo apt-get install libgles2-mesa-dev
  2.         sudo apt-get install libgles-dev  

I'm reminding that in Windows x64 you need to replace libEgl.dll and libGLESv2.dll from "bin\Win64".

Best regards,
BlackShark
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on May 17, 2021, 10:50:44 am
Video about test of KD-tree in the engine: https://youtu.be/MVrxn3jQs1U (https://youtu.be/MVrxn3jQs1U)
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on November 05, 2021, 04:02:14 pm
I am glad to present a new version 2.02 of Black Shark Graphics Engine https://bshark.org (https://bshark.org):
COLLADA specification loader implementation presentation:
https://youtu.be/Q7aOci3Pj1s (https://youtu.be/Q7aOci3Pj1s)

Best regards,
BlackShark
Title: Re: Black Shark Graphics Engine
Post by: loaded on November 05, 2021, 05:57:02 pm
The work and the video are very nice, congratulations, I wish you continued success.
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on November 06, 2021, 07:41:41 am
The work and the video are very nice, congratulations, I wish you continued success.
Thanks!
Title: Re: Black Shark Graphics Engine
Post by: AlexTP on November 07, 2021, 08:22:12 am
Is it possible to create a new widgetset from Black Shark, like we have gtk2, qt5?
Title: Re: Black Shark Graphics Engine
Post by: funlw65 on November 07, 2021, 09:27:17 am
It has already a quite complete set of widgets. But I guess you can go in any direction (a TurboVision like "text" interface, or widgets like in BGRAControls, or both) with it.

BTW, we can already make awesome GUI interfaces with BGRABotmap and company! Unfortunately, in OPM there is an "incomplete" version that does not have yet edit input widgets (as in TEdit, etc.)
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on November 07, 2021, 05:09:48 pm
Is it possible to create a new widgetset from Black Shark, like we have gtk2, qt5?

It seems possible and easy in current state the engine, but it isn't my main purpose. Welcome in its development ;). I add some controls when I need it. Now for me seem a few imperfect integration implementation to windows system VCL/LCL and some other things, which I want to improve of course. As always, the main problem is the lack of free time for this project.
Title: Re: Black Shark Graphics Engine
Post by: AlexTP on November 07, 2021, 06:16:39 pm
I do not have the knowledge to make the widgetset work. If you agree to work on it, I will donate $100 after the work is done. :)
Title: Re: Black Shark Graphics Engine
Post by: funlw65 on November 10, 2021, 02:59:41 pm
@BlackShark, can you make a demo  that demonstrates all the GUI elements? Thank you!
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on November 10, 2021, 07:57:18 pm
I do not have the knowledge to make the widgetset work. If you agree to work on it, I will donate $100 after the work is done. :)
Thanks) Maybe you'll debt me $)
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on November 10, 2021, 08:06:05 pm
@BlackShark, can you make a demo  that demonstrates all the GUI elements? Thank you!
Do you mean controls? If so, I will try to do it, but they exist already now in test units, and them are very few...
Title: Re: Black Shark Graphics Engine
Post by: AlexTP on November 10, 2021, 09:43:49 pm
BlackShark, it will be amazing if you make the first LCL widgetset with 3D-accelerated painting. Hard part is: many LCL controls (listbox, listview, treeview, button, bitbtn, speedbutton...)
Title: Re: Black Shark Graphics Engine
Post by: funlw65 on November 16, 2021, 12:03:29 pm
BlackShark, your test program has errors at compilation time on Linux64 Lazarus 2.2.0rc3 and fpc 3.2.2 in bs.test.instancing, lines 313 and 320 (the second parameter of vec2 is tvec2i64 and tvec2f expected). I had to typecast it as int32 to see it in action. 

Title: Re: Black Shark Graphics Engine
Post by: BlackShark on November 16, 2021, 04:12:00 pm
BlackShark, your test program has errors at compilation time on Linux64 Lazarus 2.2.0rc3 and fpc 3.2.2 in bs.test.instancing, lines 313 and 320 (the second parameter of vec2 is tvec2i64 and tvec2f expected). I had to typecast it as int32 to see it in action.

fixed https://bshark.org/downloads (https://bshark.org/downloads):
  -TBSTestCollada - register of file name fixed;
  -TBSTestInstancing2d - cast to TVec2f fixed;

Thanks!
Title: Re: Black Shark Graphics Engine
Post by: funlw65 on November 16, 2021, 08:28:27 pm
Thank you for the library, is awesome!
Title: Black Shark Graphics Engine
Post by: BlackShark on January 17, 2022, 10:25:00 am
I am glad to present a new version 3.0 of Black Shark Graphics Engine https://bshark.org/downloads (https://bshark.org/downloads):

Best regards,
BlackShark
Title: Re: Black Shark Graphics Engine
Post by: funlw65 on January 18, 2022, 04:47:20 am
"all dependencies on LCL/VCL/FMX were removed"

This is great. I'll give it a try after finishing the current project.
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on February 06, 2022, 04:52:01 pm
Hi!
A new version 3.02:
+ TPath was improved:
   + a support of multi color;
   + draws strokes if to set property StrokeLength > 0;
   + because of it changes in TPath, TPathMultiColored was marked as deprecated;
+ BSConfig.MaxFPS switched on for "tests/delphi/VCL/AppTestVCL" and "tests/lazarus/LazTests" projects;
+ now default behavior for TBlackSharkViewport - if BSConfig.MaxFPS is switch off then redraw occurs only when it receives events from OS.

I opened a repository the engine for everybody on github.com:
https://github.com/PVV-BS/BlackShark

Download:
https://bshark.org/downloads

Best regards,
BlackShark
Title: Re: Black Shark Graphics Engine
Post by: funlw65 on February 06, 2022, 06:23:42 pm
Thank you!
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on June 13, 2022, 07:27:42 pm
Hi!
I am glad to present new version 4.0:
    + support for the Android OS has been added; see a test project: "./tests/lazarus/Android/HelloBlackShark/jni/blackshark.lpr" and its application-wrapper project for Android Studio:  "./tests/lazarus/Android/HelloBlackShark"; your also need to create 'assets' directory and copy to it all folders from 'bin', for except other platforms folders (such as  'Win32' and 'Win64'); for compilation to ARM architecture you need change in 'build.gradle' file value 'x86_64'  to 'armeabi' and select 'Arm' build profile for the project in IDE Lazarus (Options->Compiler Options->Build modes));
    + support for the Ultibo OS has been added; see a test project: "./tests/lazarus/Ultibo/BSApplication/BSApplication.lpr"; for its compilation use this IDE: https://github.com/ultibohub/Core/releases/download/2.5.037/Ultibo-Core-2.5.037-Beetroot.exe; before starting, also do not forget to copy to the root of the SD card all folders from the bin directory, except for Win32 and Win64;
    + on Raspberry OS it just has been run without special implementation;
    + high DPI support for default GUI sizes;
    + adaptive FPS was improved for the pure Black Shark application;
    + TBTable - some fixes;
    + Cubic Hermite interpolation adopted for 3d;
    + new IBAnimationPath3d for animation with path;
    + visibility of scroll bars was fixed in TBCustomComboBox and him descendants;
    + refactoring of gl-context creation, bs.font, bs.renderer (multiple passes were fixed), bs.config (save and load implementations were added), bs.gui.chat.

Promo:
https://youtu.be/AfQVbszvugQ

Download:
https://bshark.org/downloads

Git:
https://github.com/PVV-BS/BlackShark
Title: Re: Black Shark Graphics Engine
Post by: 440bx on June 13, 2022, 10:24:14 pm
Nice work! :)
Title: Re: Black Shark Graphics Engine
Post by: Lulu on June 14, 2022, 04:47:58 pm
Impressive !
Title: Re: Black Shark Graphics Engine
Post by: AFFRIZA 亜風実 on June 14, 2022, 05:56:40 pm
Wow... Amazing, good job.
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on June 14, 2022, 06:21:55 pm
Thanks! Thanks! Thanks! :-[
Title: Re: Black Shark Graphics Engine
Post by: krolikbest on June 15, 2022, 09:16:19 pm
I've not tested the ultibo yet, but it made me curious. Does ultibo provide access to the RPi hardware layer (i2c,spi, gpio and so on), or is the access dependent (so far) on the library I use  (like wiringPi, BaseUnix..)?
 Any way, impressive!
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on June 16, 2022, 07:17:02 am
I've not tested the ultibo yet, but it made me curious. Does ultibo provide access to the RPi hardware layer (i2c,spi, gpio and so on)...?
Yes, It do.
Ultibo supports differ hardware inputs itself, I created listeners for mouse and keyboard, also made still empty template for GPIO in TODO state. Similarly, you can easily create your own.
You can find more information here about supported hardware by Ultibo:
https://ultibo.org/wiki/Supported_Hardware
Any way, impressive!
Thanks!
Title: Re: Black Shark Graphics Engine
Post by: AlexTP on June 25, 2022, 07:52:01 pm
Is it possible to create the sub-project, for text-only functionality: take TLazIntfImage (for example, it may be TBitmap or another bitmap), render text string on it using given font?
Renderer must keep background coloring and must render using different font style B-I-U-S.

Why? Speed-up CudaText on Linux.
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on June 26, 2022, 09:01:37 am
Is it possible to create the sub-project, for text-only functionality: take TLazIntfImage (for example, it may be TBitmap or another bitmap), render text string on it using given font?
Renderer must keep background coloring and must render using different font style B-I-U-S.

Why? Speed-up CudaText on Linux.

Font styles aren't supporting now, like font metrics. This features have TODO state. Text processing are demanding serious reworking now :-[
But the engine supplies raster or vector glyphs which you can use how you like. You don't even need to use a some special image to draw, you can do it anywhere and however you want, including a various background.
Title: Re: Black Shark Graphics Engine
Post by: AlexTP on June 26, 2022, 09:45:53 am
Font styles are must have, so I cannot use the lib without them yet.
Title: Re: Black Shark Graphics Engine
Post by: AlexTP on June 26, 2022, 10:01:45 am
Substitution of missing font glyphs: it's a must have too. Do you plan it? If glyph is missed, find in 'default' font (I don't know how to detect it). It's must have for Emoji unicode chars.
Title: Re: Black Shark Graphics Engine
Post by: BlackShark on July 02, 2022, 01:17:59 pm
Substitution of missing font glyphs: it's a must have too. Do you plan it? If glyph is missed, find in 'default' font (I don't know how to detect it). It's must have for Emoji unicode chars.

Substitution of missing font glyphs does not implemented.
In order to get default font you can use this:
Quote
BSFontManager.DefaultFont

I will try to pay attention to font styles and default font for missing glyphs in the next release.
TinyPortal © 2005-2018