RGL - 3D visualization device system for R using OpenGL

Related tags

Graphics rgl
Overview

RGL - 3D visualization device system for R using OpenGL

INTRODUCTION

The RGL package is a visualization device system for R, using OpenGL or WebGL as the rendering backend. An OpenGL rgl device at its core is a real-time 3D engine written in C++. It provides an interactive viewpoint navigation facility (mouse + wheel support) and an R programming interface. WebGL, on the other hand, is rendered in a web browser; rgl produces the input file, and the browser shows the images.

LICENSE

The software is released under the GNU Public License. See “COPYING” for details.

FEATURES

  • portable R package using OpenGL (if available) on macOS, Win32 and X11
  • can produce 3D graphics in web pages using WebGL
  • R programming interface
  • interactive viewpoint navigation
  • automatic data focus
  • geometry primitives: points, lines, triangles, quads, texts, point sprites
  • high-level geometry: surface, spheres
  • up to 8 light sources
  • alpha-blending (transparency)
  • side-dependent fill-mode rendering (dots, wired and filled)
  • texture-mapping with mipmapping and environment mapping support
  • environmental effects: fogging, background sphere
  • bounding box with axis ticks marks
  • undo operation: shapes and light-sources are managed on type stacks, where the top-most objects can be popped, or any item specified by an identifier can be removed

PLATFORMS

macOS Windows 7/10 Unix-derivatives

BUILD TOOLS

R recommended tools (gcc toolchain) On Windows, Rtools40 (or earlier versions for pre-R-4.0.0)

REQUIREMENTS

For OpenGL display:

Windowing System (unix/x11 or win32) OpenGL Library OpenGL Utility Library (GLU)

For WebGL display:

Browser with WebGL enabled.

Installation on Debian:

To install OpenGL support:

aptitude install libgl1-mesa-dev libglu1-mesa-dev

OPTIONS

libpng library version 1.2.9 or newer (pixmap import/export support) freetype library (optional on Unix for resizable anti-aliased fonts), required on Windows

BUILDING/INSTALLING FROM SOURCE PACKAGE

The R build tool is the primary tool to build the RGL package.

BUILDING ON MICROSOFT WINDOWS

Install Rtools40 or newer.

An Internet connection will be needed, as FreeType is automatically downloaded from https://github.com/rwinlib.

BUILDING ON UNIX-STYLE OS (macOS, Linux, FreeBSD, … )

The build is controlled by an autoconf configure script. You provide the options through the R CMD build/INSTALL command

e.g.  $ R CMD INSTALL –configure-args=“” rgl

COMMON UNIX-STYLE OS OPTIONS —————————-

–with-gl-includes= GL C header files include path

–with-gl-libraries= GL library linkage path

–with-gl-prefix= GL library prefix (e.g. Mesa)

–disable-libpng disable libpng support

–with-libpng-prefix= force LibPNG library install prefix (e.g. /usr/local)

–disable-libpng-config explicitly disable libpng-config

–disable-libpng-dynamic use static libpng library

–disable-opengl disable all OpenGL displays; WebGL is still available

You may find that your distro doesn’t have all necessary development libraries installed: read the error messages for hints! This line has been reported to be sufficient on FC 5 or 6:

yum install mesa-libGL-devel mesa-libGLU-devel libpng-devel

X11 WINDOWING SYSTEM OPTIONS —————————-

The X11 windowing system is needed for OpenGL display in macOS and Unix-alikes.

–x-includes= X11 C header files include path

–x-libraries= X11 library linkage path

BUILDING WITHOUT OPENGL ———————–

As of version 0.104.1, it is possible to build the package without OpenGL support on Unix-alikes (including macOS) with the configure option –disable-opengl For example,

R CMD INSTALL –configure-args=“–disable-opengl” rgl_0.104.1.tar.gz

On Windows, OpenGL support cannot currently be disabled.

DEMOS: LOADING AND RUNNING DEMONSTRATIONS

library(rgl)
demo(rgl)

CREDITS

Daniel Adler [email protected]
Duncan Murdoch [email protected]
Oleg Nenadic [email protected]
Simon Urbanek [email protected]
Ming Chen [email protected]
Albrecht Gebhardt [email protected]
Ben Bolker [email protected]
Gabor Csardi [email protected]
Adam Strzelecki [email protected]
Alexander Senger [email protected]
The R Core Team for some code from R.
Dirk Eddelbuettel [email protected]
The authors of Shiny for their private RNG code.
Jeroen Ooms for Rtools40 and FreeType help.
Yohann Demont for Shiny code, suggestions, and testing.
Joshua Ulrich for a lot of help with the Github migration.

WEBSITE

https://github.com/dmurdoch/rgl

Issues
  • Issues with rgl in CRAN not loading

    Issues with rgl in CRAN not loading

    I have XQuartz 2.7.11, MacOS Big Sur V11.2, R version 4.0.3. I have downloaded rgl from both the repo here on git with devtools::install_github("dmurdoch/rgl") and through CRAN, but both packages fail to load in R with no warning message after ten minutes. The initial installs had no warning messages or error messages. This package is a dependency for the rayshader library (which I have used successfully in the past). Any help would be appreciated!

    opened by will-rogers 41
  • Not able to install it from source,

    Not able to install it from source,

    Hello,

    I have installed rgl before in my system, but during an update I am no more able to install it.

    I use Gentoo Linux. I have checked that I have glu installed, and this is the end of the compilation:

    x86_64-pc-linux-gnu-g++ -std=gnu++11 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--as-needed -o rgl.so ABCLineSet.o BBoxDeco.o Background.o ClipPlane.o Color.o Disposable.o Light.o LineSet.o LineStripSet.o Material.o NULLgui.o PlaneSet.o PointSet.o PrimitiveSet.o RenderContext.o Shape.o SphereMesh.o SphereSet.o SpriteSet.o String.o Surface.o TextSet.o Texture.o Viewpoint.o api.o assert.o callbacks.o device.o devicemanager.o fps.o ftgl.o geom.o gl2ps.o glErrors.o glgui.o gui.o init.o par3d.o pixmap.o platform.o pretty.o render.o rglmath.o rglview.o scene.o select.o subscene.o win32gui.o
    win32lib.o x11gui.o x11lib.o -lGLU -lGL -L/usr/lib64 -lpng16 -lX11 -lfreetype -L/usr/lib64/R/lib -lR
    cp -R *.cpp *.c *.h OpenGL useNULL
    cd useNULL;/usr/lib64/R/bin/R CMD SHLIB -o rgl.so *.cpp *.c;rm *.cpp *.c *.h OpenGL/*; cd ..
    make[2]: Entering directory '/tmp/RtmpKE3DEw/R.INSTALL780612cab9da/rgl/src/useNULL'
    make[2]: Circular rgl.so <- rgl.so dependency dropped.
    x86_64-pc-linux-gnu-g++ -std=gnu++11 -shared -L/usr/lib64/R/lib -Wl,-O1 -Wl,--as-needed -o rgl.so rgl.so -L/usr/lib64 -lpng16 -L/usr/lib64/R/lib -lR
    x86_64-pc-linux-gnu-g++: error: rgl.so: El fitxer o directori no existeix
    make[2]: *** [/usr/lib64/R/share/make/shlib.mk:6: rgl.so] Error 1
    make[2]: Leaving directory '/tmp/RtmpKE3DEw/R.INSTALL780612cab9da/rgl/src/useNULL'
    mkdir -p ../inst/useNULL
    mv useNULL/rgl.so ../inst/useNULL/
    mv: ha fallat stat() sobre 'useNULL/rgl.so': El fitxer o directori no existeix
    make[1]: *** [Makevars:35: ../inst/useNULL/rgl.so] Error 1
    make[1]: Leaving directory '/tmp/RtmpKE3DEw/R.INSTALL780612cab9da/rgl/src'
    ERROR: compilation failed for package ‘rgl’
    

    It complains that rgl.so does not exist, although I have it from the previous rgl installation and from the r-devel version as well:

    /usr/lib64/R/library/rgl/libs/rgl.so
    /usr/local/r-devel/R/library/rgl/libs/rgl.so
    /usr/local/r-devel/R/library/rgl/useNULL/rgl.so
    

    Does anyone have any suggestion on how to solve it? Am I missing something from the documentation to install it?

    Thank you very much,

    opened by xfim 18
  • name attribute for objects and GLTF / GLB import/export

    name attribute for objects and GLTF / GLB import/export

    First and foremost, excellent work - and thank you.

    We are working on a 3d visualization (maps, graphs, etc.) library that leverages rgl to generate data-driven scene files for editing in Blender. There are a few features that would be very helpful for the capability:

    1.] When creating an object (i.e. points, lines, segments, shapes, etc.), it would be ideal if objects can be given a name/id and other data attributes from the data source. For example: rgl.points(x, y, z, id = countries, data = meta, color ="lightgray"). The goal would be that when the scene is exported (Obj) and opened in a 3d authoring tool (Blender), all data generated objects are identifiable in the outliner / scenegraph.

    2.] Considering the growing use of GLTF / GLB as a format for 3d scenes, would you consider adding the capability as a feature request? This would make it possible to leverage all aspects of the scene such as materials and textures.

    Thank you for your consideration.

    opened by JBatUN 17
  • feature request: hover in rgl

    feature request: hover in rgl

    Hi,

    Would it be possible to include a plot_hover to rgl like in shiny::plotOutput in the same manner as what has been done within https://github.com/dmurdoch/rgl/blob/master/demo/shinyMouse.R

    I did some tries with sprites to show images within rgl scene (see https://r-forge.r-project.org/forum/forum.php?thread_id=34099&forum_id=757&group_id=234) However, when there are a lots of objects to be displayed, the rendering is highly impacted and interaction with the scene tends to be impossible.

    Another solution could be to display an image on hover. I saw https://stackoverflow.com/questions/43368444/r-interactive-3d-plotly-scatterplot-rgl-style-with-hover-info but it was about plotly and I finally can't find any solution to this.

    So, I did some work on it using built-in rgl functions to determine closest point with mouse coordinates (and derivatives based on rglwidgetClass.prototype.selectionChanged and identify3d), see attached rgl_hover.zip file

    I used a div of class rglWegGL-hover that is inserted / removed during hover next to the closest vertex. Besides hover information are sent to R through input$rgl_3D_hover, allowing other elements to be inserted / removed to DOM by R functions insertUI / removeUI As an example, I had inside the .rglWegGL-hover div

    There are some limitations, because it is not fully included in rgl, (I have attached events to #plot_3D and it is not part of https://github.com/dmurdoch/rgl/blob/master/inst/htmlwidgets/lib/rglClass/mouse.src.js so it may compete with other listeners). And, for instance on scene rotation / zoom the hovering info become wrong until the mouse hovers the scene again. I choosed to remove the .rglWegGL-hover on these actions rather than computing the resulted translation. Finally, on the contrary to what happen with selection which is included inside the canvas context, so dragging (for scene rotation) may be interupted when the mouse enter the div.

    Best,

    rgl_hover.zip

    opened by gitdemont 14
  • .onLoad failed in loadNamespace() for 'rgl' error when the package is installed on a mapped drive

    .onLoad failed in loadNamespace() for 'rgl' error when the package is installed on a mapped drive

    Some background before explaining the issue: my work place has set up the Z drive as an individual "cloud" storage drive for each user. For example, if my username is mkl and I log into one of the machines at work, I will be able to access my files through this address:

    \files.companyname.ac.uk/usersm/mkl/Home/My Files/

    The address above can also be read as Z:/.

    Inside this drive, we have our R installation, including all the libraries. The default library path is as follows:

    \files.companyname.ac.uk/usersm/mkl/Home/My Files/R/R-4.1.1/library/

    Or alternatively:

    Z:/My Files/R/R-4.1.1/library/

    The issue is that after a successfull installation of 'rgl', we get this error (it's been encountered on every machine so far):

    Error: package or namespace load failed for ‘rgl’:
     .onLoad failed in loadNamespace() for 'rgl', details:
      call: getDLLRegisteredRoutines.character(dynlib, addNames = FALSE)
      error: No DLL currently loaded with name or path ‘\\files.companyname.ac.uk/usersm/mkl/Home/My Files/R/R-4.1.1/library/rgl/libs/x64/rgl.dll’
    

    Running the following code loads the package:

    library(rgl, lib.loc = "Z:/My Files/R/R-4.1.1/library")

    However, the issue comes when running the function slider3d() from the package 'Morpho'. 'Morpho' requires 'rgl' to be installed, but because I cannot initiate both libraries at the same time, I need to load 'rgl' first and only then I can load 'Morpho'. Running the function slider3d() produces the following error:

    Error in e$fun(obj, substitute(ex), parent.frame(), e$data) :
      worker initialization failed: package or namespace load failed for 'Morpho':
     .onLoad failed in loadNamespace() for 'rgl', details:
      call: getDLLRegisteredRoutines.character(dynlib, addNames = FALSE)
      error: No DLL currently loaded with name or path '\\files.companyname.ac.uk/usersm/mkl/Home/My Files/R/R-4.1.1/library/rgl/libs/x64/rgl.dll'
    

    It seems that something within that function expects 'Morpho' and 'rgl' to load at the same, or be in the same directory.

    The issue here isn't really with slider3d(), but with 'rgl' failing to load. It seems there is a problem with the path to the .dll file, however every other package has the exact same file and folder structure as 'rgl', and we are not experiencing any issues loading them into R. Why would this be happening specifically with this package?

    opened by Antsushi 11
  • plotting with rglwidget -- no 3D plot showing up in viewer

    plotting with rglwidget -- no 3D plot showing up in viewer

    I have tried to plot with the rglwidget by running the vignette source code but only a black box appears. I have tried to produce a 3D plot using the rgl iris vignette data and I was able to using plot_3D, however since the code here is not a dataframe, I cannot use that. I am not sure why only a black box appears in the viewer. I have tried knitting it in RMarkdown but it still does not appear.

    Any help is appreciated. I run my R code through a Domino workspace with R 3.6. Screen Shot 2021-03-02 at 8 32 34 PM

    opened by sarahalmar 11
  • rgl causing R and R Studio to abort

    rgl causing R and R Studio to abort

    I am running macOS Big Sur 11.2.2 on a MBP 16-inch, 2019. I recently updated to R 4.0.4 and R Studio 1.4.1103. I have XQuartz 2.8.0_rc2 installed. I have rgl version 0.105.13 installed. Every time I try to load rgl in either R Studio or Terminal the session aborts. Curiously, my desktop, which is running macOS Catalina 10.15.7 21.5-inch, late 2013, R 4.0.3, R Studio 1.4.1103, and XQuartz 2.8.0_rc2 loads and runs rgl as expected.

    opened by olibee1315 10
  • rgl examples don't display in pkgdown

    rgl examples don't display in pkgdown

    For a nice display, this will likely need changes in pkgdown (see https://github.com/r-lib/pkgdown/issues/1256), but we can have a hack similar to this one sooner: https://github.com/r-lib/pkgdown/issues/1256#issuecomment-618352673.

    opened by dmurdoch 10
  • mesh3d() and/or readOBJ() no longer works with certain textured meshes

    mesh3d() and/or readOBJ() no longer works with certain textured meshes

    In the latest CRAN release of rgl (as well as the current development version) it seems that mesh3d() or perhaps readOBJ() no longer works with certain textured meshes that previously worked with earlier rgl CRAN releases (in particular versions 0.100.47 through 0.105.22):

    # textured rectangular prism
    obj_file <- "# geometric vertices
    v 1 1 -0.125
    v 1 -1 -0.125
    v -1 -1 -0.125
    v -1 1 -0.125
    v 1 1 0.125
    v 1 -1 0.125
    v -1 -1 0.125
    v -1 1 0.125
    # texture coordinates
    vt 0.025 1
    vt 0.025 0
    vt 0.425 0
    vt 0.425 1
    vt 0.575 1
    vt 0.575 0
    vt 0.975 0
    vt 0.975 1
    vt 0.52 0
    vt 0.48 0
    vt 0.48 1
    vt 0.52 1
    # Textured polygonal face element
    f 1/1 2/2 3/3 4/4
    f 5/5 8/8 7/7 6/6
    f 6/9 7/10 3/11 2/12
    f 7/9 8/10 4/11 3/12
    f 8/9 5/10 1/11 4/12
    f 5/9 6/10 2/11 1/12"
    writeLines(obj_file, "tile_back.obj")
    
    library("rgl")
    open3d()
    mesh <- readOBJ("tile_back.obj")
    shade3d(mesh)
    
    Warning in max(inds) : no non-missing arguments to max; returning -Inf
    Error in rep_len(vals, max(inds)) : invalid 'length.out' value
    
    Enter a frame number, or 0 to exit   
    
    1: shade3d(mesh)
    2: shade3d.mesh3d(mesh)
    3: getArgs(x$it)
    4: cbind(repfn(texcoords[, 1], inds, FALSE), repfn(texcoords[, 2], inds, FALSE
    5: repfn(texcoords[, 1], inds, FALSE)
    
    • rgl Version: 0.106.7
    • R Version: 4.0.4
    • Platform: Linux 5.4.0-66-generic #74-Ubuntu SMP Wed Jan 27 22:54:38 UTC 2021
    opened by trevorld 8
  • error in rendering points in Rmarkdown

    error in rendering points in Rmarkdown

    Hi,

    I have the following problem: https://stackoverflow.com/questions/66694353/r-rgl-layout3d-breaks-playwidget-in-rmarkdown

    is it a bug or am I missing something?

    If you want, you can replace the fun_layout3D in the example with the following one in order to reproduce the "square" points error, aside the slider problem if move the fun_playwidget cell after the layout3D one. Someone suggested the reuse=FALSE but it's still not working.

    Thanks

    fun_layout3D_points = function(){
      clear3d()
      mat <- matrix(1:2, ncol = 2)
      layout3d(mat, height = c(2,2), widths = c(2,2), sharedMouse = T)
      data = matrix(sample.int(100, 81), ncol = 3)
      next3d()
      plot3d(xyz.coords(data), col = "blue", type = "p", size = 30)
      next3d()
      plot3d(xyz.coords(data), col = "red", type = "p", size = 30)
    }
    

    I have the same problem even if I use knitr::knit_hooks$set(webgl = hook_webgl) and keep webgl=TRUE in the cell options

    opened by AleBitetto 7
  • library(rgl) segfaults in RStudio

    library(rgl) segfaults in RStudio

    Related: #105?

    • rgl Version: 0.108.31 (and CRAN release)
    • R Version: 4.2.0 RC (2022-04-21 r82226 ucrt)
    • RStudio version: 2022.06.0 Build 322
    • Platform: Windows 10 x64

    library(rgl) works in the R4.2 GUI, but in RStudio I see "R Session Aborted". In R 4.1.3 and the same RStudio version rgl loads fine.

    Possibly unrelated, but I've seen the same pattern of crashing in 4.2/not crashing in R4.1 in my packages when throw is called: this worked fine in 4.1.3 but crashes 4.2.0. So I wonder whether this could be related to an error handling mechanism that's not officially supported by R?

    opened by ms609 6
  • Enhancement:  automatically change sizes in snapshot3d

    Enhancement: automatically change sizes in snapshot3d

    In snapshot3d(), you can ask for a 600 dpi 3in x 3in image by setting the size to 1800x1800 pixels, but then the lines will be too thin, and the fonts will be too small. It would be nice if the proportions that are currently shown on screen could be reproduced.

    opened by dmurdoch 0
  • Add glTF-style animation support to WebGL displays

    Add glTF-style animation support to WebGL displays

    glTF files contain support for animations in two ways: matrices in nodes (i.e. subscenes) can be animated, and individual vertices can have their positions depend on more than one node. This should all be supported in the WebGL display, allowing controls like playwidget to control items more flexibly.

    opened by dmurdoch 1
  • Installation problem: gcc -o conftest -g -O2  -DHAVE_PNG_H -I/usr/include/libpng16  conftest.c -lGL   -lpng16 -lX11 >&5 /usr/bin/ld: cannot find -lGL

    Installation problem: gcc -o conftest -g -O2 -DHAVE_PNG_H -I/usr/include/libpng16 conftest.c -lGL -lpng16 -lX11 >&5 /usr/bin/ld: cannot find -lGL

    Hi, thank you for this fantastic package!.

    I had a lot of problem trying to fully install rgl on my system.

    What I did:

    I install without problems:

    aptitude install libgl1-mesa-dev libglu1-mesa-dev
    

    However in compiling time I got this warning:

    install.packages("rgl")
    
    checking for gcc... gcc -std=gnu99
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables... 
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc -std=gnu99 accepts -g... yes
    checking for gcc -std=gnu99 option to accept ISO C89... none needed
    checking how to run the C preprocessor... gcc -std=gnu99 -E
    checking for gcc... (cached) gcc -std=gnu99
    checking whether we are using the GNU C compiler... (cached) yes
    checking whether gcc -std=gnu99 accepts -g... (cached) yes
    checking for gcc -std=gnu99 option to accept ISO C89... (cached) none needed
    checking for libpng-config... yes
    configure: using libpng-config
    configure: using libpng dynamic linkage
    checking for X... libraries , headers 
    checking for XAllocClassHint... yes
    checking GL/gl.h usability... yes
    checking GL/gl.h presence... yes
    checking for GL/gl.h... yes
    checking GL/glu.h usability... yes
    checking GL/glu.h presence... yes
    checking for GL/glu.h... yes
    checking for glEnd in -lGL... no   ------- <PROBLEM SEEMS TO BE HERE!>
    configure: WARNING: missing required library GL
    configure: compiling without OpenGL support
    configure: creating ./config.status
    config.status: creating R/noOpenGL.R
    config.status: creating src/useNULL/Makevars
    config.status: creating src/Makevars
    

    To get more information about what was happening I run ./configure by manually downloading the package from CRAN. I attached the config.log

    This file contains any messages produced by compilers while
    running configure, to aid debugging if configure makes a mistake.
    
    It was created by configure, which was
    generated by GNU Autoconf 2.69.  Invocation command line was
    
      $ ./configure 
    
    ## --------- ##
    ## Platform. ##
    ## --------- ##
    
    hostname = csaybar-pc01
    uname -m = x86_64
    uname -r = 5.8.0-63-generic
    uname -s = Linux
    uname -v = #71-Ubuntu SMP Tue Jul 13 15:59:12 UTC 2021
    
    /usr/bin/uname -p = x86_64
    /bin/uname -X     = unknown
    
    /bin/arch              = x86_64
    /usr/bin/arch -k       = unknown
    /usr/convex/getsysinfo = unknown
    /usr/bin/hostinfo      = unknown
    /bin/machine           = unknown
    /usr/bin/oslevel       = unknown
    /bin/universe          = unknown
    
    PATH: /home/csaybar/miniconda3/bin
    PATH: /home/csaybar/.poetry/bin
    PATH: /home/csaybar/.local/bin
    PATH: /home/csaybar/bin
    PATH: /usr/local/sbin
    PATH: /usr/local/bin
    PATH: /usr/sbin
    PATH: /usr/bin
    PATH: /sbin
    PATH: /bin
    PATH: /usr/games
    PATH: /usr/local/games
    PATH: /snap/bin
    PATH: /home/csaybar/.dotnet/tools
    PATH: /usr/local/MATLAB/MATLAB_Runtime/v96/runtime/glnxa64
    PATH: /usr/local/MATLAB/MATLAB_Runtime/v96/bin/glnxa64
    PATH: /usr/local/MATLAB/MATLAB_Runtime/v96/sys/os/glnxa64
    PATH: /usr/local/MATLAB/MATLAB_Runtime/sys/opengl/lib/glnxa64
    
    
    ## ----------- ##
    ## Core tests. ##
    ## ----------- ##
    
    configure:2204: checking for gcc
    configure:2220: found /usr/bin/gcc
    configure:2231: result: gcc
    configure:2460: checking for C compiler version
    configure:2469: gcc --version >&5
    gcc (Ubuntu 10.3.0-1ubuntu1~20.10) 10.3.0
    Copyright (C) 2020 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    configure:2480: $? = 0
    configure:2469: gcc -v >&5
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/10/lto-wrapper
    OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa:hsa
    OFFLOAD_TARGET_DEFAULT=1
    Target: x86_64-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu 10.3.0-1ubuntu1~20.10' --with-bugurl=file:///usr/share/doc/gcc-10/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-10 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-10-poYruo/gcc-10-10.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-10-poYruo/gcc-10-10.3.0/debian/tmp-gcn/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex
    Thread model: posix
    Supported LTO compression algorithms: zlib zstd
    gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1~20.10) 
    ... rest of stderr output deleted ...
    configure:2480: $? = 0
    configure:2469: gcc -V >&5
    gcc: error: unrecognized command-line option '-V'
    gcc: fatal error: no input files
    compilation terminated.
    configure:2480: $? = 1
    configure:2469: gcc -qversion >&5
    gcc: error: unrecognized command-line option '-qversion'; did you mean '--version'?
    gcc: fatal error: no input files
    compilation terminated.
    configure:2480: $? = 1
    configure:2500: checking whether the C compiler works
    configure:2522: gcc    conftest.c  >&5
    configure:2526: $? = 0
    configure:2574: result: yes
    configure:2577: checking for C compiler default output file name
    configure:2579: result: a.out
    configure:2585: checking for suffix of executables
    configure:2592: gcc -o conftest    conftest.c  >&5
    configure:2596: $? = 0
    configure:2618: result: 
    configure:2640: checking whether we are cross compiling
    configure:2648: gcc -o conftest    conftest.c  >&5
    configure:2652: $? = 0
    configure:2659: ./conftest
    configure:2663: $? = 0
    configure:2651: result: no
    configure:2656: checking for suffix of object files
    configure:2678: gcc -c   conftest.c >&5
    configure:2682: $? = 0
    configure:2703: result: o
    configure:2707: checking whether we are using the GNU C compiler
    configure:2726: gcc -c   conftest.c >&5
    configure:2726: $? = 0
    configure:2735: result: yes
    configure:2744: checking whether gcc accepts -g
    configure:2764: gcc -c -g  conftest.c >&5
    configure:2764: $? = 0
    configure:2805: result: yes
    configure:2822: checking for gcc option to accept ISO C89
    configure:2885: gcc  -c -g -O2  conftest.c >&5
    configure:2885: $? = 0
    configure:2898: result: none needed
    configure:2923: checking how to run the C preprocessor
    configure:2954: gcc -E  conftest.c
    configure:2954: $? = 0
    configure:2968: gcc -E  conftest.c
    conftest.c:9:10: fatal error: ac_nonexistent.h: No such file or directory
        9 | #include <ac_nonexistent.h>
          |          ^~~~~~~~~~~~~~~~~~
    compilation terminated.
    configure:2968: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME ""
    | #define PACKAGE_TARNAME ""
    | #define PACKAGE_VERSION ""
    | #define PACKAGE_STRING ""
    | #define PACKAGE_BUGREPORT ""
    | #define PACKAGE_URL ""
    | /* end confdefs.h.  */
    | #include <ac_nonexistent.h>
    configure:2993: result: gcc -E
    configure:3013: gcc -E  conftest.c
    configure:3013: $? = 0
    configure:3027: gcc -E  conftest.c
    conftest.c:9:10: fatal error: ac_nonexistent.h: No such file or directory
        9 | #include <ac_nonexistent.h>
          |          ^~~~~~~~~~~~~~~~~~
    compilation terminated.
    configure:3027: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME ""
    | #define PACKAGE_TARNAME ""
    | #define PACKAGE_VERSION ""
    | #define PACKAGE_STRING ""
    | #define PACKAGE_BUGREPORT ""
    | #define PACKAGE_URL ""
    | /* end confdefs.h.  */
    | #include <ac_nonexistent.h>
    configure:3103: checking for gcc
    configure:3130: result: gcc
    configure:3359: checking for C compiler version
    configure:3368: gcc --version >&5
    gcc (Ubuntu 10.3.0-1ubuntu1~20.10) 10.3.0
    Copyright (C) 2020 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    configure:3379: $? = 0
    configure:3368: gcc -v >&5
    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/10/lto-wrapper
    OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa:hsa
    OFFLOAD_TARGET_DEFAULT=1
    Target: x86_64-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu 10.3.0-1ubuntu1~20.10' --with-bugurl=file:///usr/share/doc/gcc-10/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-10 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-10-poYruo/gcc-10-10.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-10-poYruo/gcc-10-10.3.0/debian/tmp-gcn/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex
    Thread model: posix
    Supported LTO compression algorithms: zlib zstd
    gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1~20.10) 
    ... rest of stderr output deleted ...
    configure:3379: $? = 0
    configure:3368: gcc -V >&5
    gcc: error: unrecognized command-line option '-V'
    gcc: fatal error: no input files
    compilation terminated.
    configure:3379: $? = 1
    configure:3368: gcc -qversion >&5
    gcc: error: unrecognized command-line option '-qversion'; did you mean '--version'?
    gcc: fatal error: no input files
    compilation terminated.
    configure:3379: $? = 1
    configure:3383: checking whether we are using the GNU C compiler
    configure:3411: result: yes
    configure:3420: checking whether gcc accepts -g
    configure:3481: result: yes
    configure:3498: checking for gcc option to accept ISO C89
    configure:3574: result: none needed
    configure:3631: checking for libpng-config
    configure:3647: found /usr/bin/libpng-config
    configure:3659: result: yes
    configure:3670: using libpng-config
    configure:3674: using libpng dynamic linkage
    configure:4042: checking for X
    configure:4150: gcc -E  -DHAVE_PNG_H -I/usr/include/libpng16 conftest.c
    configure:4150: $? = 0
    configure:4181: gcc -o conftest -g -O2  -DHAVE_PNG_H -I/usr/include/libpng16  conftest.c -lX11  -lpng16 >&5
    configure:4181: $? = 0
    configure:4231: result: libraries , headers 
    configure:4256: checking for XAllocClassHint
    configure:4256: gcc -o conftest -g -O2  -DHAVE_PNG_H -I/usr/include/libpng16  conftest.c  -lpng16 -lX11 >&5
    configure:4256: $? = 0
    configure:4256: result: yes
    configure:4281: checking GL/gl.h usability
    configure:4281: gcc -c -g -O2  -DHAVE_PNG_H -I/usr/include/libpng16 conftest.c >&5
    configure:4281: $? = 0
    configure:4281: result: yes
    configure:4281: checking GL/gl.h presence
    configure:4281: gcc -E  -DHAVE_PNG_H -I/usr/include/libpng16 conftest.c
    configure:4281: $? = 0
    configure:4281: result: yes
    configure:4281: checking for GL/gl.h
    configure:4281: result: yes
    configure:4281: checking GL/glu.h usability
    configure:4281: gcc -c -g -O2  -DHAVE_PNG_H -I/usr/include/libpng16 conftest.c >&5
    configure:4281: $? = 0
    configure:4281: result: yes
    configure:4281: checking GL/glu.h presence
    configure:4281: gcc -E  -DHAVE_PNG_H -I/usr/include/libpng16 conftest.c
    configure:4281: $? = 0
    configure:4281: result: yes
    configure:4281: checking for GL/glu.h
    configure:4281: result: yes
    configure:4324: checking for glEnd in -lGL
    configure:4349: gcc -o conftest -g -O2  -DHAVE_PNG_H -I/usr/include/libpng16  conftest.c -lGL   -lpng16 -lX11 >&5
    /usr/bin/ld: cannot find -lGL
    collect2: error: ld returned 1 exit status
    configure:4349: $? = 1
    configure: failed program was:
    | /* confdefs.h */
    | #define PACKAGE_NAME ""
    | #define PACKAGE_TARNAME ""
    | #define PACKAGE_VERSION ""
    | #define PACKAGE_STRING ""
    | #define PACKAGE_BUGREPORT ""
    | #define PACKAGE_URL ""
    | #define HAVE_GL_GL_H 1
    | #define HAVE_GL_GLU_H 1
    | /* end confdefs.h.  */
    | 
    | /* Override any GCC internal prototype to avoid an error.
    |    Use char because int might match the return type of a GCC
    |    builtin and then its argument prototype would still apply.  */
    | #ifdef __cplusplus
    | extern "C"
    | #endif
    | char glEnd ();
    | int
    | main ()
    | {
    | return glEnd ();
    |   ;
    |   return 0;
    | }
    configure:4359: result: no
    configure:4372: WARNING: missing required library GL
    configure:4577: compiling without OpenGL support
    configure:4742: creating ./config.status
    
    ## ---------------------- ##
    ## Running config.status. ##
    ## ---------------------- ##
    
    This file was extended by config.status, which was
    generated by GNU Autoconf 2.69.  Invocation command line was
    
      CONFIG_FILES    = 
      CONFIG_HEADERS  = 
      CONFIG_LINKS    = 
      CONFIG_COMMANDS = 
      $ ./config.status 
    
    on csaybar-pc01
    
    config.status:728: creating R/noOpenGL.R
    config.status:728: creating src/useNULL/Makevars
    config.status:728: creating src/Makevars
    
    ## ---------------- ##
    ## Cache variables. ##
    ## ---------------- ##
    
    ac_cv_c_compiler_gnu=yes
    ac_cv_env_CC_set=
    ac_cv_env_CC_value=
    ac_cv_env_CFLAGS_set=
    ac_cv_env_CFLAGS_value=
    ac_cv_env_CPPFLAGS_set=
    ac_cv_env_CPPFLAGS_value=
    ac_cv_env_CPP_set=
    ac_cv_env_CPP_value=
    ac_cv_env_LDFLAGS_set=
    ac_cv_env_LDFLAGS_value=
    ac_cv_env_LIBS_set=
    ac_cv_env_LIBS_value=
    ac_cv_env_XMKMF_set=
    ac_cv_env_XMKMF_value=
    ac_cv_env_build_alias_set=
    ac_cv_env_build_alias_value=
    ac_cv_env_host_alias_set=
    ac_cv_env_host_alias_value=
    ac_cv_env_target_alias_set=
    ac_cv_env_target_alias_value=
    ac_cv_func_XAllocClassHint=yes
    ac_cv_have_x='have_x=yes	ac_x_includes='\'''\''	ac_x_libraries='\'''\'''
    ac_cv_header_GL_gl_h=yes
    ac_cv_header_GL_glu_h=yes
    ac_cv_lib_GL___glEnd=no
    ac_cv_objext=o
    ac_cv_prog_CPP='gcc -E'
    ac_cv_prog_HAVE_LIBPNG_CONFIG=yes
    ac_cv_prog_ac_ct_CC=gcc
    ac_cv_prog_cc_c89=
    ac_cv_prog_cc_g=yes
    
    ## ----------------- ##
    ## Output variables. ##
    ## ----------------- ##
    
    CC='gcc'
    CFLAGS='-g -O2'
    CPP='gcc -E'
    CPPFLAGS=' -DHAVE_PNG_H -I/usr/include/libpng16'
    DEFS='-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DHAVE_GL_GL_H=1 -DHAVE_GL_GLU_H=1'
    ECHO_C=''
    ECHO_N='-n'
    ECHO_T=''
    EGREP=''
    EXEEXT=''
    GREP=''
    HAVE_FREETYPE_CONFIG=''
    HAVE_LIBPNG_CONFIG='yes'
    HAVE_PKG_CONFIG=''
    HIDE_IF_NO_OPENGL='#'
    LDFLAGS=''
    LIBOBJS=''
    LIBS=' -lpng16 -lX11'
    LTLIBOBJS=''
    NULL_CPPFLAGS=' -DHAVE_PNG_H -I/usr/include/libpng16 -DRGL_NO_OPENGL'
    NULL_LIBS=' -lpng16'
    OBJEXT='o'
    PACKAGE_BUGREPORT=''
    PACKAGE_NAME=''
    PACKAGE_STRING=''
    PACKAGE_TARNAME=''
    PACKAGE_URL=''
    PACKAGE_VERSION=''
    PATH_SEPARATOR=':'
    RGL_NO_OPENGL='TRUE'
    SHELL='/bin/bash'
    XMKMF=''
    ac_ct_CC='gcc'
    bindir='${exec_prefix}/bin'
    build_alias=''
    datadir='${datarootdir}'
    datarootdir='${prefix}/share'
    docdir='${datarootdir}/doc/${PACKAGE}'
    dvidir='${docdir}'
    exec_prefix='${prefix}'
    host_alias=''
    htmldir='${docdir}'
    includedir='${prefix}/include'
    infodir='${datarootdir}/info'
    libdir='${exec_prefix}/lib'
    libexecdir='${exec_prefix}/libexec'
    localedir='${datarootdir}/locale'
    localstatedir='${prefix}/var'
    mandir='${datarootdir}/man'
    oldincludedir='/usr/include'
    pdfdir='${docdir}'
    prefix='/usr/local'
    program_transform_name='s,x,x,'
    psdir='${docdir}'
    sbindir='${exec_prefix}/sbin'
    sharedstatedir='${prefix}/com'
    sysconfdir='${prefix}/etc'
    target_alias=''
    
    ## ----------- ##
    ## confdefs.h. ##
    ## ----------- ##
    
    /* confdefs.h */
    #define PACKAGE_NAME ""
    #define PACKAGE_TARNAME ""
    #define PACKAGE_VERSION ""
    #define PACKAGE_STRING ""
    #define PACKAGE_BUGREPORT ""
    #define PACKAGE_URL ""
    #define HAVE_GL_GL_H 1
    #define HAVE_GL_GLU_H 1
    
    configure: exit 0
    

    Thank you so much for your time I will appreciate any help!

    • rgl Version: 0.107.14
    • R Version: 4.0.2
    • Platform: Linux csaybar-pc01 5.8.0-63-generic -Ubuntu SMP Tue Jul 13 15:59:12 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
    opened by csaybar 5
  • rgl very slow with R >= 4.0

    rgl very slow with R >= 4.0

    I am running the 32-bits version of Windows 10. Since I updated R to the version 4.0, the RGL device doesn't work properly: it responds very slowly to the left mouse button (trackball). Other mouse actions work properly until I try to use the left button.

    rgl works properly for any R versions before 4.0 (3.5.2, 3.6.0 to 3.6.3) and doesn't work properly for all versions from R 4.0 (4.0.0 to 4.0.5, 4.1.1). It seems independent from the rgl version: for R < 4.0 all rgl versions work properly (the most recent I was able to install is 0.106.8), whereas for R >= 4.0 no rgl version works, including the most recent one (0.107.14). It doesn't depend on RStudio either.

    opened by dalemaitre 3
  • Loading library rgl leaves an infinite process under Windows Server 2016

    Loading library rgl leaves an infinite process under Windows Server 2016

    On Windows Server 2016. This is not happening on Windows 10. Already tried both CRAN and latest version from GitHub. Used R versions 4.0.4 and 4.1.0. This is happening both in R and RScript (RScript is more visible because it prevents RScript from finishing).

    Test 1: Open R, type library(rgl), close R. Open Task Manager, there will be an open R instance.

    Test 2: create a test.R with just library(rgl) inside; open Command Prompt, call RScript test.R; it will never leave RScript, it will hang there indefinitely.

    There are no error messages, and all code, including those after library(rgl) are executed.

    Seems to be a memory leak or something that rgl library is not closing properly, leaving open even after closing R.

    opened by ribeiroi 3
Releases(v0.109.6)
  • v0.109.6(Jul 9, 2022)

    Minor changes

    • rglwidget() displays now act on “pointer” events, not just “mouse” events, so they should be more usable on touch screens and tablets (PR #240).

    Bug fixes

    • Plotting scene3d() objects didn’t handle suppressed axes properly, drawing the default axis instead (issue #241).
    • On some systems using X11, rgl would segfault when the “fixed” font was not found.
    • X11 errors could cause R to abort.
    Source code(tar.gz)
    Source code(zip)
  • v0.109.2(Jun 14, 2022)

    This is a fairly large update, fixing a lot of bugs and adding a number of new features.

    Major changes

    • Changes to support glTF animation:
      • Handling of embedding = "modify" for the model matrix has changed. Now the centering step is only done for embedding = "replace". In addition, various bugs have been fixed.
      • If a subscene has no lights defined, the lights from the parent are used.
      • plot.rglscene() now ends with the root subscene as current. It also allows specification of open3d() parameters in a list.
      • The MATn types in Buffer are returned as arrays with dim c(n, n, count).
      • The plot3d.rglscene method now passes ... to open3d().
      • The setUserShaders() function now allows arrays of 4x4 matrices as "uniforms", and allows additional textures to be specified.
    • sprites3d() now has the option of rotating = TRUE, to allow 3D sprites to rotate with the scene.
    • Added getShaders() function to get shaders used in WebGL.
    • Now detects if rgl is running within reprex::reprex() and if so arranges that a screenshot will be included in the output.
    • Added default shaders to be used in rglwidget(), rather than constructing them on the fly. This incompatibly affects the use of lights and clipping planes with user shaders: their data is now stored in arrays rather than multiple numbered variables.

    Minor changes

    • Now that pkgdown 2.0.0 has been released, a number of internal workarounds to support the development version have been removed.
    • Added as.mesh3d() methods for "rglsubscene" and "rglscene".
    • open3d() now handles useNULL and silent arguments passed in params.
    • Controls passed to playwidget() may now include a component specifying HTML dependencies.
    • Added rglwidgetClass.readAccessor() method to let other code use the buffering.
    • Changed the internal organization of bounding box calculations.
    • All functions that produce meshes now accept material properties. Newly modified to do so using the ... argument: cylinder3d(), and getBoundary3d().
    • Updated the system requirements and installation instructions.
    • Solid bounding box decorations now try harder to display 3 faces (issue #206).
    • Now that webshot2 is on CRAN, instructions for installing it from Github have been removed.
    • Sometimes webshot2 snapshots are very slow, so the default for the webshot argument to snapshot3d() now depends on the RGL_USE_WEBSHOT environment variable, using TRUE if it is unset. (Reported by Prof. B. D. Ripley.)
    • If the Chrome browser is not found, snapshot3d(webshot = TRUE) now issues a warning and reverts to using rgl.snapshot().
    • Buffers now use "normalized integers" to store color or texture coordinate values that lie between 0 and 1 when it saves some space.
    • At the request of CRAN, the akima package is no longer suggested.

    Bug fixes

    • as.mesh3d.rglobject() didn't handle objects with indices properly.
    • In WebGL, the front vs back calculation sometimes got the wrong result (issue #164).
    • pop3d(tag = x) did not always find the objects with tag == x if they were not in the current subscene.
    • The default values for front and back in rgl.material and material3d are now "filled", as documented in some places.
    • The fog setting wasn't handled properly by bg3d().
    • Numerous cases of partial argument matching were fixed (suggestion of Henrik Bengtsson in issue #170.)
    • Argument col is accepted as a synonym for color in material3d() and rgl.material().
    • planes3d() objects were not displayed consistently in rgl windows and WebGL displays, because the bounding boxes were not computed consistently (issue #169).
    • Some initialization wasn't done properly in Shiny apps, so they failed after a redraw (issue #173).
    • Buffers are now optional, as they don't work with Shiny scene changes (also issue #173).
    • The NULL device would sometimes miscalculate the bounding box.
    • selectpoints3d(closest = TRUE) selected too many points when multiple objects were in the scene.
    • Clearing nested subscenes could cause a segfault and crash.
    • In knitr and rmarkdown, blank plots could be shown when par3d(skipRedraw=TRUE) was set (issue #188).
    • Objects drawn with sprites3d() weren't lit correctly in WebGL (issue #189).
    • Objects with textures were sometimes drawn more than once, both before the texture loaded and after. This was most noticeable for objects with user textures.
    • Axis mode "pretty" got lost when scenes were redrawn.
    • Tick labels were sometimes lost in WebGL displays and snapshot3d() results (issue #197).
    • The new material properties from 0.107.10 and 0.108.3 were not handled properly by plotmath3d().
    • rglMouse() did not set the default value of the drop-down selector properly (issue #213).
    • merge.mesh3d(), used by filledContour3d(), didn't handle colors properly (issue #212).
    • bg3d(sphere = TRUE) has been fixed (issue #207).
    • Textures were not appearing on spheres, and front-back differences weren't being rendered (issue #217).
    • When "knitting" within RStudio under R 4.2.0 on Windows, rgl scenes didn't appear (reported by Dieter Menne.) A workaround has been added.
    • In rglwidget(), axis labels were not always displayed, and did not move with solid bounding box decorations properly (issue #206).
    • On some systems, lines3d() using both missing values and transparency did not draw properly (issue #234, originally reported by Gaspar Jekely).
    • The rglShared() example failed when crosstalk was uninstalled.
    Source code(tar.gz)
    Source code(zip)
  • v0.108.3(Nov 24, 2021)

    Major changes

    • Added getBoundary3d() function to extract the boundary edges of a mesh.
    • Added material property tag, a string associated with each object. The value is reported by ids3d(tags = TRUE) and may be used to select objects in most functions that use ids, but otherwise is largely ignored by rgl. The tagged3d() function returns information on tags.
    • Primitive types (points, lines, segments, triangles, quads) can now accept an indices parameter, similar to the indices in mesh3d objects.
    • Added Buffer object, based on glTF design, for holding binary data for rglwidget().

    Minor changes

    • Allowed for a third coordinate in text3d()'s adj parameter.
    • Added support for adj, pos and offset to sprites3d().
    • Added support for pos values of 0 (at specified location), 5 (in front of it), and 6 (behind it) in text3d(), sprites3d() and plotmath3d().
    • crosstalk is now a Suggested package, rather than a required one.
    • The Makevars.ucrt file has been modified with contributions from Tomas Kalibera to work with his winutf8 build of R.
    • bgplot3d() no longer pauses for each page when running examples.
    • deldir version 1.0-2 is incompatible with rgl. Added the checkDeldir() function to avoid running it.
    • shade3d() treated texture coordinates like colors, and duplicated the first one for the whole face when meshColor = "faces" was chosen. Instead, they are now treated like vertex coordinates. (Reported by Michael Sumner in issue #145).
    • Corrected the documentation and made the implementations of asHomogeneous(), asEuclidean() etc. more consistent.
    • An as.rglscene() generic has been added, though no methods are defined in this package.
    • downlit 0.4.0 has been released with support for rgl, so instructions for installing the devel version have been removed.

    Bug fixes

    • Fixed rendering of text as sprites3d() objects.
    • Added --static flag to configure script for FreeType installation. (Suggestion of Simon Urbanek and Prof. Brian Ripley.)
    • shade3d(), wire3d() and dots3d() overrode "front" and "back" material settings in mesh objects.
    • rglwidget() handling of bounding box decorations had several bugs.
    • rgl could not find routines in the DLL on some Windows installs (Issue 148.)
    • Some cases where allocations were not protected have been fixed.
    Source code(tar.gz)
    Source code(zip)
  • v0.107.14(Nov 24, 2021)

    Major changes

    • Added expect_known_scene() function to work with testthat.
    • Added some testthat tests.
    • Prepend a 5th entry to par3d("mouseMode"), corresponding to actions to take when no button is pressed.
    • Allowed any of the mouse modes to be applied to the mouse wheel.
    • Added the setUserCallbacks() function to allow user-specified mouse callbacks in WebGL code.
    • Added Javascript code for support of movable axis labels in bboxdeco objects.
    • Most drawing functions can now draw in the margins using new material properties margin and floating, with objects that move as the bounding box changes. See ?mtext3d for details.
    • The mtext3d() argument order has changed.
    • Added the setAxisCallbacks() function to allow user-specified axis drawing routines.
    • Exposed (and generalized) the as.tmesh3d() function.

    Minor changes

    • The shiny and manipulateWidget packages have been changed from imports that are always loaded to suggested packages that will only be loaded if needed. This will reduce the "footprint" of rgl for users who don't use them.
    • The NULL device can now specify par3d("useFreeType") and the result is saved.
    • Code to work with pre-1.33 versions of knitr has now been removed.
    • Added documentation of Javascript to web page.
    • The handling of the RGL_DEBUGGING environment variable has changed: now it must look like TRUE to trigger Javascript debugging mode.
    • Argument webshot = TRUE has been added to movie3d (issue #113).
    • The assert() macro is now always defined.
    • In Windows, the WM_PAINT handler should be more tolerant of code called while painting.
    • as.mesh3d.default() can create segments. (Contributed by Michael Sumner.)
    • compare_proxy.mesh3d() has been modified to be compatible with both current and upcoming versions of waldo.

    Bug fixes

    • The bug workaround in 0.105.22 for issue #27 triggered a bug in RStudio, resulting in two RStudio processes showing up when rgl was loaded. The workaround is now skipped when RStudio is detected. Use options(startQuartz = TRUE) in RStudio before loading rgl to run it, or options(startQuartz = FALSE) to suppress it.
    • In some cases, snapshots in rmarkdown documents were produced at the wrong size.
    • Controls failed to modify sphere colors (e.g. as in example(playwidget), issue #102)
    Source code(tar.gz)
    Source code(zip)
Mandelbrot set visualization in OpenGL

Mandelbort-Set done in OpenGL Steps to build and run ( program tested only on Linux-Ubuntu 18.04,20.04 ) install the necessary packages- glut,glfw,glm

Paleti Krishnasai 2 Feb 13, 2022
A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input

GLFW Introduction GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platf

GLFW 9.4k Aug 6, 2022
A legacy OpenGL simulator for OpenGL 4.4, written in C++.

the-ancient-tri A legacy OpenGL simulator for OpenGL 4.4, written in C++. Why? My Uni forces us to use legacy OpenGL (eww!), and I didn't want to lear

Mohammad Issawi 4 Feb 10, 2022
Lightweight and modular C++11 graphics middleware for games and data visualization

Magnum — Lightweight and modular C++11/C++14 graphics middleware for games and data visualization Looking for an open-source library that gives you gr

Vladimír Vondruš 4.1k Aug 14, 2022
Binary visualization tool primarily aimed at videogame reverse engineering & research.

binviz Binary visualization tool. Allows you to load a binary and pan/zoom around its content. Each byte (or 4 bytes in 4-byte mode) is represented by

Nick Renieris 28 Apr 25, 2022
Vis: Asynchronous 3D Visualization Tool

English | 简体中文 Vis: Asynchronous 3D Visualization Tool Vis 是一款交互式异步3D可视化工具,旨在让3D视觉和机器人应用开发更简单。 其核心功能包括: 图形绘制 3D模型文件导入 多种交互工具 Gzimo 安装 Linux # 安装必要的依

RVBUST 111 Aug 4, 2022
Powerful, easy to use, and portable visualization toolkit for mixed 3D and 2D content

Powerful, easy to use, and portable visualization toolkit for mixed 3D and 2D content

Microsoft 116 Aug 2, 2022
HARFANG®3D is an all-in-one 3D visualization library usable in C++, Python, Lua and Go.

HARFANG® 3D engine HARFANG®3D is an all-in-one 3D visualization library usable in C++, Python, Lua and Go. Table of contents About Features Screenshot

HARFANG® 3D 167 Aug 13, 2022
Matplot++: A C++ Graphics Library for Data Visualization 📊🗾

Matplot++ A C++ Graphics Library for Data Visualization Data visualization can help programmers and scientists identify trends in their data and effic

Alan de Freitas 2.8k Aug 11, 2022
C++14 network/graph visualization library / Qt node editor.

QuickQanava QuickQanava is a C++14 library designed to display graphs and relational content in a Qt/QML application. QuickQanava provide QML componen

null 799 Aug 8, 2022
Alpha Plot is a free application for Scientific Data Analysis and Visualization for Windows, Linux and Mac OS X

Alpha Plot is a free application for Scientific Data Analysis and Visualization for Windows, Linux and Mac OS X (probably BSD also). Web Link Website

Arun Narayanankutty 157 Jul 21, 2022
Axel Gneiting 1.4k Aug 8, 2022
A 2d Graphing Calculator using OpenGL

glGraph A 2d Graphing Calculator using Modern OpenGL Demo glGraph.mp4 Information This has only been tested on Fedora 34, it should work on other OS's

Nathan Medros 16 Apr 19, 2022
This is a openGL cube demo program. It was made as a tech demo using PVR_PSP2 Driver layer GPU libraries.

OpenGL Cube Demo using PVR_PSP2 Driver layer GPU libraries This is a openGL cube demo program. It was made as a tech demo using PVR_PSP2 Driver layer

David Cantu 5 Oct 31, 2021
Yet another Chip-8 interpreter, this time written in C++ using GLFW and OpenGL as its graphics library 💻

Yet another Chip-8 interpreter, but this time with a beautiful interface ??

Akshit Garg 27 Aug 2, 2022
OpenGL Object Loading can load virtually every 3d.obj file you can find on the internet, without using another object loading library

OpenGL Object Loading can load virtually every 3d.obj file you can find on the internet, without using another object loading library (assimp for example). The program can load Object with 12M+ triangles and more

Phan Sang 11 Aug 7, 2022
3D CA in C++ using OpenGL, freeglut, glew

3D Cellular Automata in C++ with OpenGl Compile make Run make run or ./main [@bool animation enabled] [@bool rotation enabled] [@int rule number] [@in

Sol Zilberman 3 May 26, 2022
Ipsys Particle System Yey letS go, very cool particle system generator and fast renderer

ipsys - Ipsys Particle System Yey letS go About Ipsys is a piece of software that focuces on running and displaying cool randomly generated particule

Anima Libera 5 May 26, 2022
Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs OpenGL, Direct3D, Vulkan, and Metal

Low Level Graphics Library (LLGL) Documentation NOTE: This repository receives bug fixes only, but no major updates. Pull requests may still be accept

Lukas Hermanns 1.4k Aug 13, 2022