Category Archives: Computer Graphics

Sujet de bureau d’étude LFlex

Amélioration du moteur de rendu Radium

L’objectif de ce bureau d’étude est d’améliorer la gestion des caméras virtuelles et du rendu volumique dans le moteur de rendu open source Radium-Engine. Le développement se fera en c++/OpenGL et utilisera les outils de gestion de projet git via github.

Encadrement

David Vanderhaeghe vdh@irit.fr

François Gaits francois.gaits@irit.fr

Description du context

Radium-Engine est un moteur de rendu 3D orienté pour la recherche en informatique graphique. Il est développé et maintenu par l’équipe de recherche STORM. Ce moteur de rendu a de nombreuses applications, de la visualisation de modèles 3D à l’animation, mais surtout l’exploration et le développement de nouvelles méthodes de synthèse d’images.

Dans le cadre de ce bureau d’étude, vous serez amené à vous familiariser avec Radium Engine, son architecture et ses concepts, implémenter de nouvelles fonctionnalités correspondant à des besoins utilisateurs et finalement proposer une démo basée sur ces nouvelles fonctionnalités.

Radium est entièrement écrit en C++ et propose une abstraction haut niveau de l’API graphique OpenGL. Un premier travail d’apprentissage de l’environnement de développement peut être à prévoir, comprenant la compilation, l’utilisation du C++ et les concepts rendu classique.

Ce bureau d’étude s’axe principalement autour de deux thématiques : la gestion de la caméra et le rendu volumique

Gestion de la caméra

L’objectif est de fournir de nouveau outils comme la création de chemins de caméras permettant de créer des vidéos ou l’implémentation de nouveau types de caméras. Il sera sans doute nécessaire de modifier l’architecture du programme concernant ses caméras, mais surtout d’inventorier les caméras existantes.

Rendu volumique

les volumes 3D représentent une grande quantité d’information et sont très utilisés notamment en imagerie médicale, plusieurs techniques existent pour les visualiser (MIP, marching cubes, slicing…).Cette thématique a donc pour but de créer de nouvelles visualisations de volumes au sein de Radium, mais aussi d’étudier les mécanismes d’import et d’export de volumes présents. Cette thématique a donc pour but de créer de nouvelles visualisations de volumes au sein de Radium, mais aussi d’étudier les mécanismes d’import et d’export de volumes présents.

Radium fournit aussi la possibilité de créer des démos mettant en avant ses fonctionnalités. La finalité de ce BE est donc de créer une démo du travail effectué.

Cadre de travail

Le sujet est pensé pour une équipe de 4 à 12 étudiant.e.s. Les objectifs seront modulés en fonction de la taille de l’équipe.

Radium Engine utilise cmake comme gestion de la compilation.

Radium Engine est multi plateforme, l’environnement de développent est laissé libre pour chaque participants.

Le code devra être déposé sur github, et l’intégration éventuelle des résultats passera par le système de pull request de github. De plus le code devra respecter les règles de conduite du projet, en terme de qualité, tests unitaires, nommage des différents composants.

Nous accompagnerons la montée en compétences en c++, OpenGL, l’utilisation de git et github.

David Vanderhaeghe est membre de l’équipe STORM de l’IRIT.

François Gaits est membre des équipes STORM et MINDS de l’IRIT

Internship proposal: Stroke clustering for stylized animation automatic in-betweening

Location : Laboratoire IRIT, STORM research team, Université Paul Sabatier – Toulouse

Advisor : David Vanderhaeghe, vdh@irit.fr, www.dlyr.fr, Amélie Fondevilla

Funding : ANR project Structures ANR-19-CE38-0009-01

Keywords : stroke-based rendering, painterly animation, example-based methods, computer graphics

Context.

Animation movies show great media of artistic expression (see Fig. [fig:ex]), allowing artists to convey powerful narrations, while not being limited to the existing range of shapes and motions. Unfortunately, they are significantly tedious and time consuming to produce. It is particularly the case for 2D animation composed of sets of marks, such as paint or drawings.

Standard stroke-based rendering methods can automatically produce stylized content made of marks such as paint strokes or hatching . They either focus on a specific style or technique to propose a fully automatic process, or allow to tweak style along larges sets of parameters , which may not be the more intuitive solution for an artist. They usually do not take into account style features related to motion, which is an important aspect of animation design .

Internship Project.

The high level goal of the project is to ease the creation of stroke based rendering animation, with the look and feel of hand made animation. One key question is how to capture user style and automatically create new frames of the animation. This kind of approach mixes an animated input (a 3D scene in our framework) with style information (digital painted frames in this proposal). The goal of the internship project is to analyze user created frames and generate intermediate frames in the same style. The first step is to define a metric to cluster strokes in a given frame. Theses clusters could be linked to an underlying 3D scene, which guides the animation. The second step is to create link the clusters extracted from two frames, and then provide a interpolation scheme to create in between frames.

Candidate’s profile.

Potential candidates for the thesis should have :

  • Master student in Computer Science, or equivalent.
  • Strong background in real time computer graphics, mathematics, and c++ programming.
  • Additional skills in some of the following topics would be appreciated: expressive rendering, user interface, numerical optimization.
  • Fluent french or english speaking.

Application.

Send your application to David Vanderhaeghe (vdh@irit.fr) with

  • a complete CV,
  • high education grades report
  • reference name/email address

About STORM-IRIT

STORM is a research team part of the IRIT Laboratory (UMR CNRS 5505). We conduct research on computer graphics, including geometric modeling, 3D animation and rendering. See our webpage for more details about recent research https://www.irit.fr/STORM/site/. The PhD will take place on the Rangueil campus, in the IRIT building, south of Toulouse, nearby all facilities and ground public transport to reach the city.

libGL.so compil problem

From time to time, on my ubuntu 11.10, i have link error like “undefined reference to glGetQueryObjectui64v”.
This is because an unidentify package update break libGL.so symlink in
/usr/lib or /usr/lib/x86_64-linux-gnu

The best solution I found is to manually
“sudo rm libGL.so libGL.so.1”
and to “ln -s nvidia-current/libGL.so .” in usr/lib
and “ln -s ../libGL.so .” in /usr/lib/x86_64-linux-gnu
and so on with libGL.so.1 if needed ..

Install (and develop in) cuda under ubuntu 11.10

What you need for cuda with ubuntu 11.10 :

Download and install cudatoolkit (4.1.28) and gpucomputingsdk nvidia download page
You also need last driver (either with a ppa package or direct from nvidia).

chmod +x cudatoolkit_4.1.28_linux_64_ubuntu11.04.run
./cudatoolkit_4.1.28_linux_64_ubuntu11.04.run
#-> /home/XXX/cuda for instance
chmod +x gpucomputingsdk_4.1.28_linux.run
./gpucomputingsdk_4.1.28_linux.run
#-> /home/XXX/NVIDIA_GPU_Computing_SDK
# indicate cuda install dir

I choose to install both in my home dir. Cuda need gcc 4.4 (not 4.6 which is default in ubuntu 11.10) if not installed
sudo apt-get install gcc-4.4 g++-4.4
then the simplest solution i’ve found is

ln -s /usr/bin/gcc-4.4 ~/cuda/bin/gcc
ln -s /usr/bin/g++-4.4 ~/cuda/bin/g++

Add lib and bin dir to path
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/XXX/cuda/lib64; export PATH=$PATH:XXX/cuda/bin

cuda sdk needs also Xi Xmu and glut
sudo apt-get install libxi-dev libxmu-dev freeglut3-dev
and I don’t know why, but libcuda.so wasn’t linked from /usr/lib/nvidia-current to /usr/lib/ so you need to add the symlink
sudo ln -s nvidia-current/libcuda.so .

And to compile NVIDIA_GPU_Computing,
one need also to modify common.mk to use g++-4.4/gcc-4.4 in place of g++/gcc
in ~/NVIDIA_GPU_Computing_SDK/C/common/common.mk
~/NVIDIA_GPU_Computing_SDK/CUDALibraries/common/common_cudalib.mk common_npplib.mk
~/NVIDIA_GPU_Computing_SDK/CUDALibraries/common/UtilNPP/defines.mk
change
CXX := g++ -fPIC
CC := gcc -fPIC
LINK := g++ -fPIC

into
CXX := g++-4.4 -fPIC
CC := gcc-4.4 -fPIC
LINK := g++-4.4 -fPIC

A last thing is cuda sdk provides GL/* headers which are not compatible with some of my code, so I need to remove the directory found here ~/NVIDIA_GPU_Computing_SDK/CUDALibraries/common/inc/GL

Blogs I follow

Here is a list of blog I follow on a regular basis (by rss syndication)

Some are very active (several post a day) some less (one post a year) but worse it 😉
Beautiful Pixels [RSS]

Beyond3D News [RSS]

c0de517e [RSS]

Chris Hecker’s Website – Recently Changed Articles [RSS]

Confetti Special FX [RSS]

Deano’s Home From Home [RSS]

Diary of a Graphics Programmer [RSS]

DirectX Developer Blog [RSS]

Gamasutra Feature Articles [RSS]

GameDev.net – Latest Articles and Columns [RSS]

GameDevKicks.com [RSS]

Gates 381 [RSS]

Geeks3D.com [RSS]

GT Rendu [RSS]

Guru3d Latest Headlines [RSS]

Guru3d.com Latest Articles [RSS]

Humus [RSS]

I Get Your Fail [RSS]

Icare3D Blog [RSS]

Industrial Arithmetic [RSS]

John Ratcliff’s Code Suppository [RSS]

Ke-Sen Huang’s Conference Paper List [RSS]

Legalize Adulthood! [RSS]

level of detail [RSS]

Lost in the Triangles [RSS]

MeshLab Stuff [RSS]

NVIDIA Developer News [RSS]

On the path with a ramblin’ man, by jollyjeffers [RSS]

Pandemonium [RSS]

PC Perspective Articles Feed [RSS]

PC Perspective News Feed[RSS]

Pete Shirley’s Graphics Blog[RSS]

Pixels, Too Many..[RSS]

Ray Tracing News [RSS]

Real-Time Rendering [RSS]

realtimecollisiondetection.net – the blog [RSS]

Recherche : Evénements et manifestations [RSS]

Recherche : Tous les communiqués [RSS]

Recherche : Tous les discours [RSS]

TomF’s Tech Blog [RSS]