des trucs et tout
This commit is contained in:
parent
2314495358
commit
05bc1da196
BIN
Images/perlin_terrain.jpg
Normal file
BIN
Images/perlin_terrain.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 59 KiB |
@ -35,20 +35,24 @@ nœud de grille coïncide avec le vecteur de gradient aléatoire précalculé.
|
|||||||
|
|
||||||
Voici une version C++ de l'implantation du bruit de Perlin à 2 dimensions:
|
Voici une version C++ de l'implantation du bruit de Perlin à 2 dimensions:
|
||||||
|
|
||||||
\begin{lstlisting}[caption=Implantation du bruit de Perlin en C++, label=code:perlin]
|
\begin{minted}{c++}
|
||||||
// Function to linearly interpolate between a0 and a1
|
// Function to linearly interpolate between a0 and a1
|
||||||
// Weight w should be in the range [0.0, 1.0]
|
// Weight w should be in the range [0.0, 1.0]
|
||||||
float lerp(float a0, float a1, float w) {
|
float lerp(float a0, float a1, float w) {
|
||||||
return (1.0 - w)*a0 + w*a1;
|
return (1.0 - w)*a0 + w*a1;
|
||||||
|
|
||||||
// as an alternative, this slightly faster equivalent formula can be used:
|
// as an alternative, this slightly faster equivalent
|
||||||
|
// formula can be used:
|
||||||
// return a0 + w*(a1 - a0);
|
// return a0 + w*(a1 - a0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Computes the dot product of the distance and gradient vectors.
|
// Computes the dot product of the distance and gradient
|
||||||
float dotGridGradient(int ix, int iy, float x, float y) {
|
// vectors.
|
||||||
|
float dotGridGradient(int ix, int iy,
|
||||||
|
float x, float y) {
|
||||||
|
|
||||||
// Precomputed (or otherwise) gradient vectors at each grid node
|
// Precomputed (or otherwise) gradient vectors at each
|
||||||
|
// grid node
|
||||||
extern float Gradient[IYMAX][IXMAX][2];
|
extern float Gradient[IYMAX][IXMAX][2];
|
||||||
|
|
||||||
// Compute the distance vector
|
// Compute the distance vector
|
||||||
@ -85,4 +89,4 @@ float perlin(float x, float y) {
|
|||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
\end{lstlisting}
|
\end{minted}
|
||||||
|
@ -24,16 +24,3 @@ terre craquelée… Cette utilisation est d’autant plus pertinente car le
|
|||||||
bruit de phase peut sans-problème être implémenté en tant que shader
|
bruit de phase peut sans-problème être implémenté en tant que shader
|
||||||
de pixel pour s’exécuter en tant réel à moindre coût, et même
|
de pixel pour s’exécuter en tant réel à moindre coût, et même
|
||||||
s’adapter à d’éventuels changements de géométrie.
|
s’adapter à d’éventuels changements de géométrie.
|
||||||
|
|
||||||
Le bruit de phase peut également être utilisé dans le cadre de la
|
|
||||||
fabrication additive. C’est un procédé qui consiste à concevoir un
|
|
||||||
objet ou une pièce mécanique en déposant des couches de matériaux
|
|
||||||
succesives. Cela peut être du plastique fondu à l’aide d’une tête
|
|
||||||
chauffante comme c’est le cas dans les imprimantes 3D que l’on peut
|
|
||||||
retrouver dans le commerce, mais aussi des métaux sous forme de poudre
|
|
||||||
qui est fondue à l’aide d’un LASER.
|
|
||||||
|
|
||||||
Cela permet de produire des pièces difficiles à produire avec les
|
|
||||||
méthodes classiques d’usinage en utilisant moins de matière premières
|
|
||||||
(pas de chutes). On peut également avoir un contrôle plus fin sur la
|
|
||||||
quantité et éventuellement le mélange de différents matériaux.
|
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
Le bruit de phase peut également être utilisé dans le cadre de la
|
||||||
|
fabrication additive. C’est un procédé qui consiste à concevoir un
|
||||||
|
objet ou une pièce mécanique en déposant des couches de matériaux
|
||||||
|
succesives. Cela peut être du plastique fondu à l’aide d’une tête
|
||||||
|
chauffante comme c’est le cas dans les imprimantes 3D que l’on peut
|
||||||
|
retrouver dans le commerce, mais aussi des métaux sous forme de poudre
|
||||||
|
qui est fondue à l’aide d’un LASER.
|
||||||
|
|
||||||
|
Cela permet de produire des pièces difficiles à produire avec les
|
||||||
|
méthodes classiques d’usinage par exemple, en utilisant moins de
|
||||||
|
matière première (pas de chutes). On peut également avoir un contrôle
|
||||||
|
plus fin sur la quantité et éventuellement le mélange de différents
|
||||||
|
matériaux.
|
||||||
|
|
||||||
|
Dans ce contexte, le bruit de phase peut servir à produire des motifs
|
||||||
|
à fin de construire des pièces flexibles mais résistantes, voire même
|
||||||
|
de contrôler les degrés de liberté (les manières dont on peut tordre
|
||||||
|
l’objet).
|
16
rapport.tex
16
rapport.tex
@ -1,16 +1,18 @@
|
|||||||
\documentclass[a4paper,12pt]{article}
|
\documentclass[a4paper,12pt]{article}
|
||||||
%\documentclass[a4paper,10pt]{scrartcl}
|
|
||||||
|
\usepackage{mathspec}
|
||||||
|
\setmainfont{Inria Sans}[Scale=MatchLowercase]
|
||||||
|
\setsansfont{Inria Sans}[Scale=MatchLowercase]
|
||||||
|
\setmathfont(Digits,Latin,Greek,Symbols)[Scale=MatchLowercase]{Inria Serif}
|
||||||
|
\setmathrm[Scale=MatchLowercase]{Inria Sans}
|
||||||
|
\usepackage{mathastext}
|
||||||
|
|
||||||
\usepackage{xltxtra}
|
\usepackage{xltxtra}
|
||||||
\usepackage{fontspec}
|
%% \usepackage{fontspec}
|
||||||
\usepackage[french]{babel}
|
\usepackage[french]{babel}
|
||||||
\usepackage{listings}
|
\usepackage{listings}
|
||||||
% \usepackage{float}
|
\usepackage{minted}
|
||||||
% \usepackage[subsection]{placeins}
|
|
||||||
|
|
||||||
%\setromanfont[Mapping=tex-text]{Linux Libertine O}
|
|
||||||
\setmainfont[Mapping=tex-text]{Cantarell}
|
|
||||||
% \setmonofont[Mapping=tex-text]{DejaVu Sans Mono}
|
|
||||||
\newenvironment{citationFR}{\begin{quotation}\og}{\fg\end{quotation}}
|
\newenvironment{citationFR}{\begin{quotation}\og}{\fg\end{quotation}}
|
||||||
\newcommand{\guillemets}[1]{\og #1\fg{}} % [1]: nbr arg
|
\newcommand{\guillemets}[1]{\og #1\fg{}} % [1]: nbr arg
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user