Sorry for not answering, this email got buried under my inbox.

IIRC, Woden is built on modern GL techniques, and GL_POLYGON is deprecated
> in 3.0, so I doubt it.

By polygon, what do you mean?, an arbitrary concave polygon or a convex
polygon? For a convex polygon, you only need to use what is known as a
triangle fan. For a concave polygon, you need a constrained Delaunay
triangulation, which is an easy to explain but hard to implement algorithm.
I guess that GL_POLYGON only supports convex polygons.

For the convex case, take a look here:
http://en.wikipedia.org/wiki/Triangle_fan
I think that the code should be something like this;

builder := WDGeometryBuilder ...
points := {}.
points do: [:p | builder addP: ...].
indexBase = 1.
3 to: points size: [:i |
  builder addI: 1 i2: i - 1 i3: i3.
].

If you want the concave case, take a look into the incremental Delaunay
triangulation algorithm. Then, into adding the constrains (edges of the
polygon) to construct the constrained Delaunay triangulation. Now, this is
a 2D algorithm, so the points have to be in a plane. Don even think on
trying a 3D Delaunay triangulation, because it is for volumes and not
surface, and it is hellish.

>
> I Woden still developed?

Currently I do not have time to work in Woden, but when I get more time, I
will continue working on it. More time means after May, because of studies
and a paper that I am presenting in ICSE.

I Woden still developed? Because I thought that Object Profile was working
> on it. Otherwise maybe we should switch to the CodeCity engine… it seems to
> have more “support”.
>
>
Now, I do not want to add many more low level features to Woden, until I
get a production ready version of Lowcode/uFFI, which is required to
optimize some really performance critical sections of Woden. With Lowcode I
am getting C like pointers in the VM with a small overhead in comparison
with nbFloat32AtOffset: and nbFloat32AtOffset:put: . Pointers and C
structures are required to fill buffers with an exact memory layout, which
is required by OpenGL 2+ .

The alternative to Lowcode or the NativeBoost x86-32 assembler, is to move
significant parts to C++. Moving significant parts to C++ means a huge loss
of flexibility, and it means a completely different engine. Completely
different, because I have been reading about more modern game engines, and
better design patterns such as Entity Component System.

Anyway, one of the first thing that I am going to do when coming really
back to Woden, is to move it to GitHub. By using git I can fix some part of
the native library dependency hell. Bullet is used for physics it is
written in C++, and I am definitely not going to rewrite in Smalltalk.

Moreover, I would like to put some sort of skybox in my scene. Apparently
> it's not possible yet, so my question is how could I do that?


Skyboxes are in my TODO list. My biggest problem with sky-boxes are in
loading the cube map texture. A cube map texture is actually a single
texture that has six faces. The six faces of a cube.

Skybox support requires loading a cube map texture, and then using a
special material for the sky with a special shader.
I am going to try getting a demo working in the weekend, it should not be
very complicated. It also gives me a good opportunity to rewrite the
shaders. I found a better way to embed shaders when working in the
VirtualGPU, by using the GTInspector.

you want to reinvent all the effort ronie put in woden?

It is more probably that the one reinventing and being successful would be
myself. Graphics programming is really hard, specially if we are doing it
in a completely dynamic language as Smalltalk or Pharo. I have learned
valuables lessons by reinventing my game/graphics engine several time, and
studying long time ago others game engines, such as the good old Quake
engine. Woden is not my first or second graphics engine, I have already
lost the count. I think it is about my sixth/seven engine. And I still
think that there's a lot of room that I have improve, without rewriting
everything.

Do not expect to see a AAA game engine written completely in Pharo or
Smalltalk. The optimizations done in AAA engines simply cannot be done in
Smalltalk. They are designed with simple data structures that are optimized
to work well with CPU caches. There is also some heavy inlining done by the
C/C++ compiler. No garbage collection, just manual and deterministic memory
management.

If you want to make a new engine, please be aware that the graphics
landscape is becoming quite interesting. Specially because this year we are
going to see Vulkan, which is the successor of OpenGL, and Direct3D 12.
Those new graphics API are said to be very low level in comparison with
OpenGL. According to Valve (
http://www.phoronix.com/scan.php?page=article&item=valve-lunarg-vulkan&num=1
), writing a graphics engine for Vulkan is similar to writing a graphics
driver or developing for consoles. All of this requires heavy support for
pointers a la C.

Best regards,
Ronie Salgado

2015-04-16 18:24 GMT-03:00 Alexandre Bergel <alexandre.ber...@me.com>:

> > Uhh..
> >
> > I Woden still developed? Because I thought that Object Profile was
> working on it. Otherwise maybe we should switch to the CodeCity engine… it
> seems to have more “support”.
>
> Ronie?
>
> Alexandre
>
> >
> >> On 16 Apr 2015, at 15:11, Alexandre Bergel <alexandre.ber...@me.com>
> wrote:
> >>
> >> No idea, but let us know!
> >>
> >> Alexandre
> >> --
> >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> >> Alexandre Bergel  http://www.bergel.eu
> >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
> >>
> >>
> >>
> >>> On Apr 16, 2015, at 4:41 AM, Lusa Nicolas <nicolas.l...@usi.ch> wrote:
> >>>
> >>> Hello,
> >>>
> >>> I am Nicolas Lusa from university of Lugano and I am working on my
> master thesis with the supervision of Yuriy Tymchuk.
> >>> Right now I am working with woden and I am trying to build polygons.
> >>> Question1: Is it possible somehow to build polygons in woden?
> >>>
> >>> If not:
> >>> I know woden is based on OpenGL and I also know that in OpenGL is
> possible to draw polygons with GL_POLYGON and a given array of points.
> >>> Question2: How could I use GL_POLYGON through woden for my purpose?
> >>>
> >>> Moreover, I would like to put some sort of skybox in my scene.
> Apparently it's not possible yet, so my question is how could I do that?
> >>>
> >>> Thanks in advance.
> >>> Cheers.
> >>> Nicolas
> >>
> >
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>

Reply via email to