Thursday, June 19, 2014

SSE horizontal minimum and maximum

 static inline float sseHorizontalMin(const __m128 &p)  
 {   
     __m128 data = p;             /* [0, 1, 2, 3] */   
     __m128 low = _mm_movehl_ps(data, data); /* [2, 3, 2, 3] */   
     __m128 low_accum = _mm_min_ps(low, data); /* [0|2, 1|3, 2|2, 3|3] */   
     __m128 elem1 = _mm_shuffle_ps(low_accum,   
                       low_accum,   
                       _MM_SHUFFLE(1,1,1,1)); /* [1|3, 1|3, 1|3, 1|3] */   
     __m128 accum = _mm_min_ss(low_accum, elem1);   
     return _mm_cvtss_f32(accum);   
 }  
 static inline float sseHorizontalMax(const __m128 &p)  
 {   
     __m128 data = p;             /* [0, 1, 2, 3] */   
     __m128 high = _mm_movehl_ps(data, data); /* [2, 3, 2, 3] */   
     __m128 high_accum = _mm_max_ps(high, data); /* [0|2, 1|3, 2|2, 3|3] */   
     __m128 elem1 = _mm_shuffle_ps(high_accum,   
                       high_accum,   
                       _MM_SHUFFLE(1,1,1,1)); /* [1|3, 1|3, 1|3, 1|3] */   
     __m128 accum = _mm_max_ss(high_accum, elem1);   
     return _mm_cvtss_f32(accum);   
 }  


Follow the project on Facebook : https://www.facebook.com/immersionengine
Follow me on twitter : twitter.com/lefebv_l

Sunday, May 11, 2014

LibXML2 & 64 bit compilation on Windows

We recently tried to change our platform from 32bit to 64bit.

Here are some feedbacks:
- We were based on libxml2, which relies on libiconv and zlib. Unfortunately, the official libxml website (ftp://xmlsoft.org/libxml2/) doesn't provide 64bit precompiled binaries for Windows.

- We found some files on the web https://github.com/dlonie/OpenBabel-BFGS/tree/master/windows-vc2008/libs/x64 that didn't work.

- We didn't have the patience to recompile everything from scratch - it will add too much complexity to our dev env.

The solution we choose:
TinyXML2 ! 
- Because it is just 2 files : one .h / one .cpp
- Because you can compile it in 32/64 bit
- Because it is fast and easy to use

Source : http://www.grinninglizard.com/tinyxml2/

What's new in TinyXML2 compared to TinyXML ?
  1. Many fewer memory allocation (1/10th to 1/100th), uses less memory (about 40% of TinyXML-1), and faster (~5x on read)
  2. No STL requirement
  3. More modern C++, including a proper namespace
  4. Proper and useful handling of whitespace

Hello, world.

Just a simple announcement : From now, all posts will be written in English.

Friday, September 28, 2012

SFML2.0 RC and Visual Studio 2012 RC


EDIT 2013/07: SFML2.0 Stable is out! http://www.sfml-dev.org/

Cette semaine, j'ai essayé la version 2.0 RC de la SFML, qui est absolument géniale!
Mais en voulant aller trop vite, je n'ai pas vu que Visual Studio 2012 RC (VC11) n'était pas supporté. 
Comme j'ai perdu pas mal de temps a chercher des bugs qui n'existaient pas (crashs aléatoires), certains trouverons pratique ce dossier conternant lib, include et dll de la SFML2.0 RC, fonctionnels pour Visual Studio 2012 RC!

Télécharger l'archive
(4 Mo)

Enjoy!

Si vous avez aimé l'article n'hésitez pas à laisser un commentaire, ou me suivre sur twitter

Saturday, August 25, 2012

Le premier lancer de rayon... a eu lieu en 1525 !





En 1525, Albrecht Dürer, peintre, graveur et mathématicien allemand expose une méthode pour représenter les perspectives. Il reporte point par point sur une feuille, les contours d’objets à l’aide d’une ficelle tendue entre le point de vue et la scène...

La même méthode est utilisée de nos jours dans les calculs graphiques, la ficelle ayant été remplacé par des vecteurs, et les objets par des ensembles de triangles...

Tuesday, July 10, 2012

Rencontre avec Balthazar Auxietre - Eidolon


Ce weekend, nous avons rencontré Balthazar Auxietre, réalisateur du projet Eidolon, "une installation immersive qui propose de vivre une expérience cinématographique interactive pour un spectateur unique".




Ce type de projet artistique nous intéresse beaucoup, car nous partageons le même but, la même finalité: faire vivre des expériences, des aventures, au travers d'une histoire, d'une technologie.

Pour Eidolon, la technologie de réalité virtuelle utilisée est un casque. A 
l'avenir nous travaillerons probablement avec Balthazar sur un nouveau projet, en utilisant cette fois l'Immersion Engine comme pièce maîtresse, et vous pourrez vivre cette expérience immersive sur n'importe quel équipement de réalité virtuelle.


Stay tuned ;)



Si vous avez aimé l'article n'hésitez pas à laisser un commentaire, ou me suivre sur twitter

Thursday, June 14, 2012

Premiers retours de Gaiagen


Nous avons des nouvelles de Gaiagen, le logiciel de génération de mondes virtuels développé par Julien Lagorsse et ses acolytes, et qui utilise l'Immersion Engine comme moteur de rendu.

Gaiagen est un projet de fin d'étude. Le logiciel doit générer terrains, océans, végétation, et dans le futur des espaces urbains.


Pour l'instant la gestion du terrain et de l'eau est bien avancée, je vous tiendrais au courant des futures nouveautés.




Voici un screenshot de la génération de terrain.










Si vous avez aimé l'article n'hésitez pas à laisser un commentaire, ou me suivre sur twitter

Thursday, June 7, 2012

VIDEO - Immersion Engine dans la presse online!

Ces dernières semaines ont été riches en nouveauté.

Entre autres, #Epitech à publié un article de presse qui a été repris par de nombreux site, dont les très réputés 3dvf.com et afjv.com



Nous sommes très content de l'engouement généré par le projet, cela nous motive encore plus dans notre travail, et de nouvelles surprises sont en préparation pour la rentrée. Stay tuned ;-)

Regardez Camille JAN parler d'Immersion, dans cette courte vidéo de 2 minutes.



Si vous avez aimé l'article n'hésitez pas à laisser un commentaire, ou me suivre sur twitter

Tuesday, June 5, 2012

Comment mettre à jour manuellement un plugin Firefox obsolète?

De temps en temps, avec les nouvelles versions de Firefox, certain de vos plugins peuvent devenir obsolètes.
Pour forcer leur compatibilité, voici un petit hack:


Téléchargez le module sur votre ordinateur (clic droit -> enregistrer le lien sous), puis renommez l'extension .xpi en .zip
Ouvrez l'archive, et modifiez le fichier install.rdf présent à l'intérieur.



Cherchez la balise <em:maxVersion> et changez la valeur par le numéro de votre version.
Sauvegardez le fichier, renommez l'extension de l'archive en .xpi, et ouvrez-là avec Firefox (ctrl+O) pour installer le module.

Si vous avez aimé l'article n'hésitez pas à laisser un commentaire, ou me suivre sur twitter

Friday, May 25, 2012

Compiler Firesheep sur Fedora



Dernièrement, je me suis amusé dernièrement à compiler Firesheep sur ma Fedora.
Voici les commandes tapées:

Installation des dépendances:

yum install autoreconf  xulrunner xulrunner-devel git git-all cpan libpcap libpcap-devel boost boost-devel gcc libtool autoheader

cpan CORBA::XPIDL
cpan CORBA::IDL::Parser

Récupération des sources:

git clone https://github.com/mickflemm/firesheep.git
cd firesheep/

git submodule update --init

Compilation:

./autogen.sh --with-xulrunner-sdk=/usr/lib/xulrunner-2



Pour l'installation de l'extension, il suffit d'ouvrir le .xpi avec Firefox (path du fichier dans la barre d'adresse).
Il vous faudra éventuellement lancer Firefox en root pour certaines permissions.


Si vous avez aimé l'article n'hésitez pas à laisser un commentaire, ou me suivre sur twitter