RAYTRACING
Apres des début sur
un 386SX avec coproc arithmétique, calcul de ma premiere
image en 22H00 ! en 640x480 et sans modeleur SVP !
heureusement que la puissance actuelle des PC permet des
délais d'attente raisonnables ..
<1mn de calcul pour la même image sur un PIV 2,6Ghz
Bien prévoir au moins 1Go de RAM pour etre tranquille
avec la manipulation d'image!
Attention, le temps de calcul dépent beaucoup de la
qualité finale( Q9), et surtout du nombre de points d'éclairage
et des objets avec surfaces réflechissantes.. sans
parler de l'usage de la radiosité!
2017 .. bien plus de confort avec version Win10 64 bits
pour POVRAY .. dommage MORAY n'est plus maintenu.
Les
Outils
Gallerie
d'images
Exemples
de réalisations
:
Altimetre
multi tours (avec
Animation )
Indicateur
à aiguille 255 pas (avec
Animation)
Allumage
progressif de lampe en 100 pas ( avec Animation )
Thermometre
Analogique (ou presque) avec Animation. (juin 2017)
Horloge
AT89C2051 6 afficheurs et > 100 leds ( avec Animation.) (Mars 2018)
Meuble
Comptoir cuisine
(2018)
Boite
Horloge et Message Defilant 12matrices H 8x8
Boite
Horloge et Message Defilant 8 matrices V 8x8 (2020)
Porte
Treillis simple et double ( Février 2021)
comparaison virtuel et reel
**** rendu
avec POVRAY 3.7 64 bits
Divers:
Intersections
![]() 13_bieres_b. |
![]() 13_bieres_c. |
![]() brouette. |
clayette. ![]() |
![]() min_ampo. |
![]() filament. |
![]() jardin. StMau |
![]() Bieres sur table 3 |
![]() mini_amp |
![]() portail. |
![]() salon. St Mau |
![]() sdc. |
![]() Hot + Cold= tiede ! Irelande |
![]() rpm_meter |
![]() Touret à tiroirs |
![]() corde chaine rail |
![]() android_ray |
![]() Ecran Samsung |
![]() Capteur effet Hall |
![]() |
![]() Meubles 1999 St Mau. |
![]() Intempor 4b ..... "une cuillere de piano ?" |
![]() fabrication meuble comptoir 2018-2019 |
![]() Horloge Anneau RGB 60 leds + 4 Matrices 8x8 juin 06/2019 |
![]() Horloge Message defilant, avec 12 matrices 8x8 Horiz. |
![]() Hologe Message defilant avec 8 matrices 8x8 Verticales .....2020 |
![]() Porte treillis simple et double -02/2021) |
et pour les curieux ou adeptes ,ci dessous les sources
fichier MDL et POV + accessoires
13_bieres_mdl.zip
brouette.zip
sdc.zip
image 800x600 calculée en : Total Time: 0 hours 27
minutes 50 seconds (1670 seconds)
Voltmetre à aiguille :
Rpm_Meter_mdl.zip
rpm_indic20.zip decomposition
variation aiguille en 20 steps ( à utiliser dans
programme VB6! voir MAX1241)
rpm_indic50.zip decomposition
variation aiguille en 50 steps
Touret_Tiroirs.zip
2_robinets.zip calcul
en 7min 38 sec image 800X600
Current_Hall_Sensor_.Zip
calcul en 16 minutes image 640x480 sur PIV 2,6Ghz
rope_chain_rail.zip
usage des objets :links corde,rail,chaines avec
mini spheres pour accrocher les extremites,
android.mdl ...la
mascotte remaniée
nota: variable link loseness , permet à la corde de
subir la gravite terrestre !
autres exemples
Meuble Comptoir 2018
Meuble_Comptoir_Cuisine_181108.mdl
carrelage.mdl
Textures Map:
carreaux_x4_salon_45degres.gif
Bois_Dessus_comptoir_e.gif
Povray files : POVRAY_Meuble_Comptoir.zip
le Virtuel et le reel :
commentaires: mailto:paulfjujo@free.fr
Boite
Horloge + message Defilant (12
matrices H) 2019
fichier Modeleur Moray :
Mise_en_Boite_Journal_Lumineux_12_Matrices_191218.mdl
Fichiers POVRAY:
mise_en_boite_journal_lumineux_12_matrices_191218.pov
mise_en_boite_journal_lumineux_12_matrices_191218.inc
4_Matrices_8x8_A.gif
4_Matrices_8x8_B.gif
4_Matrices_8x8_C.gif
Boite
Horloge + message Defilant (8 matrices V)
14/02/2020
Fichier Modeleur Moray :
Boite_Horloge_Journal_Lumineux_8_Matrices_V_2020_02_14a.mdl
Fichiers POVRAY:
boite_horloge_journal_lumineux_8_matrices_v_2020_02_14a.pov
boite_horloge_journal_lumineux_8_matrices_v_2020_02_14a.inc
Max7219_Matrice_V_8x8_2020.mdl
MAX7219_CI.gif
mylogo_CI.gif
Base_CI_map.gif
ANIMATIONS
ALTIMETRE
Creation avec MORAY..100628
altim000.pov
Altimetre_animation_INI.txt
Altimetre.mdl
Particularité :
AUCUN MAPAGE D'IMAGE ..(hormis le logo!) uniquement fait
avec les primitives de MORAY
sous MORAY:
Les graduations sont faites avec des cylindres ,
recopiés sous MORAY,
via un pas de 360 °/50 pour les petites graduations et
un pas de 360/10 pour les grandes graduations.
Les aiguilles sont faites avec la primitive extrusion.
A partir du fichier original de rendu crée par POVRAY,
renomé Altim000.pov (pour evoluer à ALTIM501.pov
le fichier altimetre.ini est modifié manuellement pour y
inserer la variable clock qui sert à
recalculer les angles formés par les 2 aiguilles et
relancer un rendu pour ...elaborer les 501 images
5H00 de calcul pour les 501 images.
500 pas pour parcourir les 10000 metres
couplées à l'appli en VB6 , la mesure acquise
via la laison RS232, fait pointer sur le bon fichier
image
INDICATEUR
250
associé au programme VB6
Indicateur 250 degres de
course => 251 images
(0 à 250)
Graduation tous les 8 degres pour correspondance 4096
points 100% 250°
Fichier modeleur : Moray_Indicateur_250.zip
Fichier POV resultant , modifié pour rendering en 250
pas de -125° à + 125 ° (angulaire!) indic000.pov
Fichier POV INI associé : Indicateur_250_pas.INI
Images utilisées pour Appli en VB6 (animation ).
Ampoule à
incandescence à 100 etats
(00 à 99)
Fichier modeleur : Moray_ampoule63v.zip
Fichier POV resultant , modifié (ligne 238) pour
rendering de 100 pas pour le parametre Flare_size: amp_000.pov
Fichier POV INI associé :
ampoul_100.ini
![]() |
Lampe états de 0 à 100% |
Thermometre
ANALOGIQUE (ou presque)
La mesure est faite via un capteur Analogique LM35DZ, un
MCU en fait la moyenne sur 10 mesures
Cette mesure sert à positionner l'aiguille de l'indicateur
via un servo moteur
voir _16F1847/16F1847_Cde_Servo.htm#Thermo_ANA
160 images composent l'animation .
nota: usage de POVRAY version 3.7
Parametrage:
Fichiers MORAY :
Servo_temper_14_22_30.mdl
servo_temper_14_22_30.inc
Fichier POV resultant : servo_temper_14_22_30.pov
Fichiers POVRAY, issu de MORAY, mais modifié pour l'animation:
servo.pov
les parametres , dans servo.pov pour orienter la cible
angulairement :
rappel: 8 cars maxi, il faut laisser la place pour le
rajout d'index 000 à 160
Fichiers liéz à l' Animation:
Rerun00.Ini
pvengine.ini
ANIMSERVO.INI
L'animation : Anim_Indicateur_Temper.gif
Horloge AT89C2051
60 leds
Etude d'un design d' habillage pour une horloge
affichant les secondes ecoulées via 60 leds ..et
plus.
Lien vers l'application et
montage Hardware de base, pour cette horloge numerique
Realisation en 3 phases :
Preparation de la scene comportant les differents objets
, avec le modeleur MORAY,
Ajustement du fichier de base avec POVRAY pour preparer
les images necessaires à l'animation
et création du Fichier ANIME
La face avant de cette horloge comporte les 6 afficheurs
7 segments, regrpupés par blocks de 2 , pour affichage
de HH MM SS
Les leds en circonference, s'allument progressivement de
0 à 59 secondes
ainsi que 3 ilots de leds,en synchronisme avec les leds
secondes
1) Usage du Modeleur MORAY:
Le point de depart est de créer une scene avec camera,
éclairages et les differents objets,éléments à
afficher
Un "support" de tout l'ensemble est en arriere
plan
La camera vise le centre , et est située pile en face.
Moray permet de DUPLIQUER une led , en 60 leds réparties
en ORBIT à partir du centre.
La led est ici tres simplifié : un morceau de cylindre
Un afficheur est construit à l'aide de 7 segment ( 1
segment= un parallepidepe et 4 plans de coupe en biseau)
Utilisation de CSG : outil de découpe ,assemblage par
somme, intersection ou différence de differents objets..
un afficheur 7 seg est d"doublé dans un pavé de 2
afficheurs
Ce pavé est Dupliqué par 3 pour les 3 ensembles d'affichage
HH ,MM,SS
Le dernier afficheur SS, sera remplacé par la suite , en
interne,dans POVRAY, mais c'est pour le situer dans l'espace
De la meme facon , l'Oeil D , est une led mise en orbite
avec un pas de 360°/12
L'Oeil Gauche est dupliqué
Le sourire est aussi une Led, qui est rectangulaire ,
mise en orbite avec un Rayon fixe, et avec une
orientation variable suplémentaire
Une fois tous les élements positionnés correctement ..
on véerifie dans les 3 plans X,Y,Z
On applique les textures (couleurs ) aux
éléments => ce qui crée un fichier annexe : horloge_60leds_180328.inc
au final, le fichier Moray obtenu est :
Horloge_AT89C2051_runing_180327.mdl
Architecture du fichier MORAY :
On lance alors un Rendu avec une definition d'image
precisée..
qui crée un fichier *.POV dans le directory : Moray\Povscn\Horloge_AT89C2051_runing_180327.POV
et lance , active POVRAY , en lui passant comme
paramètre ce nom de fichier POV
et on obtient cette image *.PNG ( sans les commentaires
en jaune !)
Si le point de départ est jugé correct, on passe à la
suite : L' Animation
Pour cela on reprend le fichier POV crée via MORAY ,
renomé en hor60s_7seg_180328.pov
pour l'adapter, modifier
2) Usage du lanceur de rayon :
POVRAY :
version 3.62 en 64 bits
POVRAY représente la scene en 3D, via son langage de
programmation.
Avant l'arrivée du modeleur MORAY, il fallait se repr"senter
la scene dans sa tête , ou avec un dessin crayon/papier/gomme.
C'est faisable.. et en plus on comprends mieux .(car on y
est obligé !)
POVray est abondamment illustré, documenté sur son site
original, et par les utilisateurs ,concepteurs sur le Web.
POVray dispose d'une variable interne Clock , qui peut
evoluer de 0.0 à 1.00 par défaut, et d'une variable
Frame_number
au niveau d'une animation , on definit donc la relation
qui existe entre Clock et Frame (images)
pour definir une animation.
j'ai donc defni :
dans le fichier principal d"crivant la scene : hor60s_7seg_180328.pov
#declare Avance =floor(clock/5.999);
// 60 pas de 6°
#debug concat ("Avance= ",str(Avance,5,3),"\n")
nota: pourquoi 5.999 et non pas
6.0 ..parcque les tests en flottant ne conaissent pas les
valeurs trop ronde !
et dans le fichier de rendu animation: Hord60s_7seg_run_180328.ini
Initial_Frame=0
Final_Frame=59
Initial_Clock=0.0
Final_Clock=360.0
* Affichage Groupe de 60 leds
cette variable Povray, nommée AVANCE parcours les 360 °
par pas de 6° , et correspond donc à la position et
Numéro de la LED
Cette variable sert à definit si la led doit etre
allumée ou pas , par raport à un seuil ,ou une zone de
seuils
Pendant le parcours, l'Avance, des 60 leds, une partie
est derivée vers 74
*Affichage Oeil Dt .. Avance de 1 à 11
*Affichage pupille D .. Avance=12
*Affichage "Sourire" à partir Avance de 22 à
38
*Affichage Oeil G .. Avance de 48 à 59
*Affichage pupille G Avance=48
Affichage des secondes dans le groupe afficheurs
Secondes
Apres plusieurs essais infructueux, du à un manque de
connaissance et aussi au fait que POVRAY n'a pas de
fonction
AND Bit logique , permettant de selectionner un segment
suivant l'etat d'un bit dans un mot (ou byte)
j'ai trouvé un site tres interessant sur le raytracing :
http://www.f-lohmueller.de/
auquel j'ai emprunté la fonction original Seven_Segment_LCD.inc
Je n'ai pas tout compris ! mais j'ai pu la modifier ,
adapter à mon cas .
Je me sers de la variable Avance , pour
valider les segments à allumer dans les 2 digits
secondes.
Seven_Segment_LCD_180328.inc
modif pour mettre les digits verticaux
modif pour afficher le digit dizaine si secondes <10
modif pour renverser le plan d'affichage des digits
modif emplacement x,y,z dans mon propre plan d'affichage
modif mise à l'echelle et couleur des segments
Préparation de la construction des 60 images
pour l'animation :
paramétrage défini dans Hord60s_7seg_run_180328.ini
Fichier source povray : hor60s_7seg_180328.pov
bien verifier que l'onglet
actif soit le fichier *.pov
click sur Render .. c'est partit..
calcul des 60 images en moins d'1/4
Heures avec taille 800x600 et qualité 6
Total Scene Processing Times
Parse Time: 0 hours 0 minutes 3 seconds (3 seconds)
Photon Time: 0 hours 0 minutes 0 seconds (0 seconds)
Render Time: 0 hours 14 minutes 20 seconds (860 seconds)
Total Time: 0 hours 14 minutes 23 seconds (863 seconds)
CPU time used: kernel 44.77 seconds, user 818.23 seconds,
total 863.00 seconds
Render averaged 556.20 PPS over 480000 pixels
on se retouve avec 60 fichier *.png dans le directory
designé par le fichier *.ini
D:\Raytracing\Images\hor60s_7seg_18032800.png ..........hor60s_7seg_18032859.png
Statistiques: (extrait du fichier stat.out généré par
POVRAY)
Les differents fichiers de travail pour en
arriver là
D:\Raytracing\Moray\MDL\Horloge_AT89C2051_runing_180327.mdl
D:\Raytracing\POV\scenes\hor60s_7seg_180328.pov
(La scene complete )
D:\Raytracing\POV\include\Seven_Segment_LCD_180328.inc
( Animation des 2 digits secondes)
D:\Raytracing\POV\include\Sourire_modifie_180328.inc
D:\Raytracing\POV\include\horloge_60leds_180328.inc(Textures,couleurs)
D:\Raytracing\POV\ini\Hord60s_7seg_run_180328.ini
(Animation : 60 images en 800x600 Qualité=6)
et les 60 images !
et c'est pas fini !
3) Création de l'animation
il faut d'abord transformer les 60 fichier *.png
en format *.gif
on pert un peu en qualité en passant de 65K couleurs à
256 couleurs (optimisées)..mais on gagne en moins de
poids total en Moctets
lancer PSP5 (Paint Shop Pro 5)
---convertion multiples
-----nom fichie sources *.png
-----les selectionner
--------hor60s_7seg_18032800.png .. hor60s_7seg_18032859.png
----------dossier de destination : D:\Raytracing\Images\_Horloge_60leds
------------parametres *.gif
------------option version 89.a non entrelacés
------Demarrer
... conversion reussi
fermer PSP5
Creation du fichier d'animation :
lancer
C:\Program Files (x86)\Paint Shop Pro 5\Anim.exe
Fichier
...Assistant d'animation
.......meme taille que la 1ere image
.........opaque
suivant
......la jouer 1 fois
......duree d'affichage 100 / 100em de seconde donc 0,1
sec
suivant
......ajouter image
ATTENTION : ajouter par
petit paquet de fichiers .. sinon ça bug!
ajouter de hor60s_7seg_18032800.gif à hor60s_7seg_18032810.gif
ouvrir
bloque au dela de 7 cumul de fichier =>
renomage par blocs d
fichiers, avec Xnview de tous les fichiers hor60s_7seg_180328xx.gif
avec un nom tres cours ex: HORL#".gif
avec ce nom court, on peut entasser des paquets de 15
fichiers à la fois
Nota: cette operation aurait pu
etre mixée , en meme temps que la transformation *.PNG
en GIF
...... SUIVANT
......TERMINER
....fichier
.............Enregister sous
............Horloge_60leds_Anim_180328.gif
............Type : GIF
..................Enregistrer
...................param : meilleur qualite d'image
SUIVANT
............creation palette,application palette,
optimisation,compression
SUIVANT
.......2,99Mo
........Terminer
Quitter
Resultat:
D:\Raytracing\Images\_Horloge_60leds\Horloge_60leds_Anim_180328.gif
= 3.065 Mo
ouvrire . Horloge_60leds_Anim_180328.gif
avec : internet explorer ou Animation Shop (Paint Shop
Pro PSP5)
Video :
Horloge_60leds_Anim_180328.webm
la suite : Réalisation pratique dans le monde
Réel..
Porte Treillis Simple et Double
21 fev 2021.
Montage pour supporter 2 treillis bois de 180x60x2 cm,
pour ombrage et coupe vent ,
Usage de 3 piliers bois 7x7cm rainurés dans lesqueles
sont glissées les treillis.
*penible operation pour
raboter / ponçer les montants verticaux epaiseur totale
20mm-> à reduire à <=19mm
Une planche suppor pour les 3 "mats" , receavnt
aussi un BAC de Bambous, faisant
contre poids .. evite le renversement par grand vent !
Coût
de l'operation
* Gify ;
2 treillis bois 180x60x2cm ....2x
9,90 .................... 19,80
* Problemo: Trop épais
! .. la version simple treillis (de 2020) , faisait e=18mm
..OK pour rainure de 20mm
* Amberieu BricoCash :
3 poteaux 2100x70x70 rainurés (2cm), ...3x 8.55
...25,65
1 Lame finition 2x6x200 cm
........................................2,00
3 support 15x15x14cm ....... 3x 4.90
.......................14.70
* Meximieux BricoMarché
Planche aglo hydrofuge (vert)
150x61cm recoupée à 128x55 e=21mm ................8.90
3 sachets
de visserie + rondelles ............. ..............17.40
1 pot de peinture 1L gris ANTH RAL....................16.99
total = 105.44
Objets :
Pied metalique 71x71, base 15x15x14 : Objet_Support_poteau_7x7cm_15x15x14cm.mdl
Poteau rainuré 7x7x2100 : Objet_Poteau_rainure_2M_7x7cm.mdl
Treillis 180x60 : objet_Treillis_60x180cm.mdl
![]() |
![]() |
Moray en action | insertion de 3 objets : 2 Pieds et 1 poteau (raccourci et coupé par un plan) + 3 eclairages |
Rendu direct par la fonction "Render"
de MORAY ( sans lancer POVRAY
3.5 )
* fond noir si parametre Background =0 = Noir
fichier modeleur MORAY : Double_140x180_et_Simple_Treillis_70x180_2024.mdl
(rev 24/02/2021)
clicker sur barre en haut Render .. Render
Exportation vers Povray :
Test rendu avec POVRAY 3.67 Windows 10
64 bits
logo POVRAY 3.7
Uniquement via l'usage direct de POVRAY.exe ( version 3.7)
les fichiers povay necessaires ci-dessous , résultent de
l' Exportation par Moray.
fichier POV : double_140x180_et_simple_treillis_70x180_2021.pov
textures : double_140x180_et_simple_treillis_70x180_2021.inc
init: Double_140x180_et_Simple_Treillis_70x180_2024.INI
copie du fichier povray.ini : povray.ini_20210224.txt
,
*l'original est dans C:\Users\Paul\Documents\POV-Ray\v3.7\ini\povray.ini
Messages Windows :
Render Statistics
Image Resolution 1600 x 1200
Pixels: 2 040 800 Samples: 1720208
Rays: 3 857 922
Ray->Shape Intersection Tests
Box 1 0674 022
Cone/Cylinder 2 242 790
CSG Intersection 1 481 724
True Type Font 565 052
Bounding Box 305 362 085
Shadow Ray Tests: 16 047 722
Shadow Cache Hits: 789 970
Reflected Rays: 96 914
Peak memory used: 194 285 568 bytes
Photon Time: No photons
Radiosity Time: No radiosity
Trace Time: 0 hours 0 minutes 6 seconds (6.567 seconds)
using 4 thread(s) with 21.795 CPU-seconds total
POV-Ray finished
CPU time used: kernel 0.95 seconds, user 24.84 seconds,
total 25.80 seconds.
Elapsed time 8.36 seconds
REALISATION :
24/02/2021
* incident :
blocage de lame de coupe scie cloche 62mm => axe fondu,
la lame tourne autour du foret => foutu.
=>
DIVERS :
Intersections:
un simple poteau (Cube) et un Plan de coupe ...
fichier moray :
Intersections_2021_0302.mdl