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:
|
||||
|
||||
\begin{lstlisting}[caption=Implantation du bruit de Perlin en C++, label=code:perlin]
|
||||
\begin{minted}{c++}
|
||||
// Function to linearly interpolate between a0 and a1
|
||||
// Weight w should be in the range [0.0, 1.0]
|
||||
float lerp(float a0, float a1, float w) {
|
||||
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);
|
||||
}
|
||||
|
||||
// Computes the dot product of the distance and gradient vectors.
|
||||
float dotGridGradient(int ix, int iy, float x, float y) {
|
||||
// Computes the dot product of the distance and gradient
|
||||
// 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];
|
||||
|
||||
// Compute the distance vector
|
||||
@ -85,4 +89,4 @@ float perlin(float x, float y) {
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
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,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{fontspec}
|
||||
%% \usepackage{fontspec}
|
||||
\usepackage[french]{babel}
|
||||
\usepackage{listings}
|
||||
% \usepackage{float}
|
||||
% \usepackage[subsection]{placeins}
|
||||
\usepackage{minted}
|
||||
|
||||
%\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}}
|
||||
\newcommand{\guillemets}[1]{\og #1\fg{}} % [1]: nbr arg
|
||||
|
||||
|
Reference in New Issue
Block a user