qPCV.lyx 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479
  1. #LyX 2.0 created this file. For more info see http://www.lyx.org/
  2. \lyxformat 413
  3. \begin_document
  4. \begin_header
  5. \textclass book
  6. \use_default_options false
  7. \maintain_unincluded_children false
  8. \language french
  9. \language_package default
  10. \inputencoding latin9
  11. \fontencoding T1
  12. \font_roman default
  13. \font_sans helvet
  14. \font_typewriter default
  15. \font_default_family sfdefault
  16. \use_non_tex_fonts false
  17. \font_sc false
  18. \font_osf false
  19. \font_sf_scale 100
  20. \font_tt_scale 100
  21. \graphics default
  22. \default_output_format default
  23. \output_sync 0
  24. \bibtex_command default
  25. \index_command default
  26. \paperfontsize 10
  27. \spacing single
  28. \use_hyperref true
  29. \pdf_bookmarks true
  30. \pdf_bookmarksnumbered false
  31. \pdf_bookmarksopen false
  32. \pdf_bookmarksopenlevel 1
  33. \pdf_breaklinks false
  34. \pdf_pdfborder false
  35. \pdf_colorlinks true
  36. \pdf_backref false
  37. \pdf_pdfusetitle true
  38. \pdf_quoted_options "linkcolor=blue"
  39. \papersize a4paper
  40. \use_geometry true
  41. \use_amsmath 1
  42. \use_esint 1
  43. \use_mhchem 0
  44. \use_mathdots 0
  45. \cite_engine basic
  46. \use_bibtopic false
  47. \use_indices false
  48. \paperorientation portrait
  49. \suppress_date true
  50. \use_refstyle 0
  51. \index Index
  52. \shortcut idx
  53. \color #008000
  54. \end_index
  55. \leftmargin 1.5cm
  56. \topmargin 3cm
  57. \rightmargin 1.5cm
  58. \bottommargin 3cm
  59. \secnumdepth 3
  60. \tocdepth 3
  61. \paragraph_separation indent
  62. \paragraph_indentation default
  63. \quotes_language french
  64. \papercolumns 1
  65. \papersides 2
  66. \paperpagestyle fancy
  67. \tracking_changes false
  68. \output_changes false
  69. \html_math_output 0
  70. \html_css_as_file 0
  71. \html_be_strict false
  72. \end_header
  73. \begin_body
  74. \begin_layout Section
  75. qPCV - ShadeVis Ambient Occlusion
  76. \end_layout
  77. \begin_layout Standard
  78. \begin_inset Index idx
  79. status collapsed
  80. \begin_layout Plain Layout
  81. qPCV, ambient occlusion
  82. \end_layout
  83. \end_inset
  84. \begin_inset Index idx
  85. status collapsed
  86. \begin_layout Plain Layout
  87. Portion de Ciel Visible
  88. \end_layout
  89. \end_inset
  90. \begin_inset Index idx
  91. status collapsed
  92. \begin_layout Plain Layout
  93. eclairage@éclairage!simuler
  94. \end_layout
  95. \end_inset
  96. \begin_inset CommandInset label
  97. LatexCommand label
  98. name "subsection:qPCV"
  99. \end_inset
  100. \end_layout
  101. \begin_layout Standard
  102. Cet outil permet de calculer rapidement l'illumination des points d'un nuage
  103. ou des sommets d'un maillage par détermination de la "
  104. \series bold
  105. P
  106. \series default
  107. ortion de
  108. \series bold
  109. C
  110. \series default
  111. iel
  112. \series bold
  113. V
  114. \series default
  115. isible" (P.C.V.
  116. - voir figure
  117. \begin_inset space ~
  118. \end_inset
  119. \begin_inset CommandInset ref
  120. LatexCommand ref
  121. reference "fig:PCVExample"
  122. \end_inset
  123. ).
  124. Des termes équivalents ou des concepts proches sont :
  125. \shape italic
  126. global illumination
  127. \shape default
  128. ,
  129. \shape italic
  130. ambient occlusion
  131. \end_layout
  132. \begin_layout Standard
  133. \begin_inset Float figure
  134. placement !htb
  135. wide false
  136. sideways false
  137. status open
  138. \begin_layout Plain Layout
  139. \align center
  140. \begin_inset Graphics
  141. filename ../images/Partie3_Fonctions/PCVExample.jpg
  142. width 60text%
  143. \end_inset
  144. \begin_inset Caption
  145. \begin_layout Plain Layout
  146. \begin_inset CommandInset label
  147. LatexCommand label
  148. name "fig:PCVExample"
  149. \end_inset
  150. Rendu classique avec normales (gauche) et rendu "PCV" (droite)
  151. \end_layout
  152. \end_inset
  153. \end_layout
  154. \end_inset
  155. \end_layout
  156. \begin_layout Standard
  157. Cet éclairage consiste à calculer pour chaque point la
  158. \shape italic
  159. quantité
  160. \shape default
  161. de ciel qu'il voit, ou autrement dit la quantité d'énergie lumineuse qu'il
  162. recevrait si l’entité était éclairée uniformément.
  163. Ceci permet de colorier les points en fonction de leur profondeur relative
  164. et fait très bien ressortir le relief et la micro-géométrie.
  165. En pratique le calcul est effectué avec un algorithme équivalent à
  166. \emph on
  167. ShadeVis
  168. \emph default
  169. (proposé initialement par Cignoni et al.
  170. du VCG).
  171. Pour des raisons d'efficacité, l'algorithme discrétise la demi-sphère (ou
  172. la sphère complète) représentant
  173. \begin_inset Quotes fld
  174. \end_inset
  175. le ciel
  176. \begin_inset Quotes frd
  177. \end_inset
  178. et l'estimation de la
  179. \shape italic
  180. portion de ciel visible
  181. \shape default
  182. peut donc être plus ou moins précise.
  183. De même, l'algorithme se fait via la carte graphique, à une résolution
  184. donnée (les points sont affichés dans chaque direction pour déterminer
  185. à chaque fois ceux qui sont visibles ou non).
  186. Là encore, en fonction de la résolution choisie (et de la densité du nuage
  187. si l'entité est un nuage) les occlusions peuvent être déterminées avec
  188. plus ou moins de finesse.
  189. \begin_inset Newline newline
  190. \end_inset
  191. \end_layout
  192. \begin_layout Standard
  193. Les deux principaux paramètres de l'algorithme, modifiables via la boite
  194. de dialogue associée à la fonction (figure
  195. \begin_inset CommandInset ref
  196. LatexCommand ref
  197. reference "fig:PCVParamWindow"
  198. \end_inset
  199. ), sont donc :
  200. \end_layout
  201. \begin_layout Itemize
  202. \shape italic
  203. Light rays
  204. \shape default
  205. - le nombre de « rayons » lumineux.
  206. Pour chaque direction d'éclairement (rayon), l'algorithme projette les
  207. entités selon cette direction et calcule la visibilité des points (ou des
  208. sommets d'un maillage).
  209. Cette information de visibilité est accumulée pour chaque direction et
  210. permet de calculer l'éclairement global.
  211. Plus le nombre de rayons est grand, et plus la dynamique de la valeur d'éclaire
  212. ment sera grande.
  213. Par contre, le temps de calcul est directement proportionnel au nombre
  214. de rayon.
  215. \end_layout
  216. \begin_layout Itemize
  217. \shape italic
  218. Resolution
  219. \shape default
  220. - la résolution du buffer de rendu.
  221. La projection des entités selon une direction se fait dans un buffer
  222. \shape italic
  223. OpenGL
  224. \shape default
  225. dont la résolution va jouer sur le pouvoir de séparation entre points.
  226. Plus la résolution est forte, et mieux les points seront dissociés (d'où
  227. un meilleur calcul de leur éclairement propre et une meilleure finesse
  228. du résultat).
  229. Par contre, si la résolution est trop grande, outre un temps de calcul
  230. et une consommation mémoire plus importants (cela dépend des performances
  231. de la carte graphique), il faut aussi se méfier du fait que le nuage peut
  232. devenir "poreux" et laisser passer la lumière (voir remarque ci-dessous).
  233. Dans le cas d'un maillage ceci ne pose pas problème.
  234. Les cartes graphiques actuelles assurent des performances de plus en plus
  235. grandes, il ne faut donc pas hésiter à utiliser des valeurs importantes
  236. pour ces deux paramètres.
  237. \begin_inset Newline newline
  238. \end_inset
  239. \end_layout
  240. \begin_layout Standard
  241. \begin_inset Float figure
  242. placement !htb
  243. wide false
  244. sideways false
  245. status open
  246. \begin_layout Plain Layout
  247. \align center
  248. \begin_inset Graphics
  249. filename ../images/Partie3_Fonctions/PCVParamWindow.png
  250. width 30text%
  251. \end_inset
  252. \begin_inset Caption
  253. \begin_layout Plain Layout
  254. \begin_inset CommandInset label
  255. LatexCommand label
  256. name "fig:PCVParamWindow"
  257. \end_inset
  258. Interface de paramétrage de qPCV
  259. \end_layout
  260. \end_inset
  261. \end_layout
  262. \end_inset
  263. \end_layout
  264. \begin_layout Standard
  265. Remarques :
  266. \end_layout
  267. \begin_layout Itemize
  268. L'algorithme crée un nouveau type de champ scalaire (« PCV ») avec la rampe
  269. de couleur « Gray » (niveaux de gris) automatiquement associée.
  270. \end_layout
  271. \begin_layout Itemize
  272. \begin_inset ERT
  273. status open
  274. \begin_layout Plain Layout
  275. \backslash
  276. textcolor{red}
  277. \end_layout
  278. \end_inset
  279. \begin_inset ERT
  280. status collapsed
  281. \begin_layout Plain Layout
  282. {
  283. \end_layout
  284. \end_inset
  285. La lumière simulée par l'algorithme
  286. \shape italic
  287. ShadeVis
  288. \shape default
  289. est considérée comme provenant de l'hémisphère des Z positifs.
  290. Z correspondant à la direction verticale, le nuage de points doit donc
  291. être orienté en conséquence avant tout calcul.
  292. \begin_inset ERT
  293. status collapsed
  294. \begin_layout Plain Layout
  295. }
  296. \end_layout
  297. \end_inset
  298. .
  299. Si la case à cocher "360° mode" est cochée, la lumière vient du globe complet
  300. et il n'y a plus de direction particulière.
  301. \end_layout
  302. \begin_layout Itemize
  303. Puisque l'illumination calculée par cet algorithme est un champ scalaire,
  304. il est possible de jouer avec les potentiomètres de saturation pour régler
  305. le contraste.
  306. Dans le cas d'un maillage, on peut aussi utiliser les fonctions de moyenne
  307. et de rehaussement du contraste (voir sections
  308. \begin_inset space ~
  309. \end_inset
  310. \begin_inset CommandInset ref
  311. LatexCommand ref
  312. reference "subsection:smoothMeshSF"
  313. \end_inset
  314. et
  315. \begin_inset CommandInset ref
  316. LatexCommand ref
  317. reference "subsection:enhanceMeshSF"
  318. \end_inset
  319. ).
  320. Une fois les paramètres correctement réglés, on peut transformer le champ
  321. scalaire en
  322. \emph on
  323. couleurs
  324. \emph default
  325. avec la fonction « Scalar Fields > Convert to RGB » (section
  326. \begin_inset space ~
  327. \end_inset
  328. \begin_inset CommandInset ref
  329. LatexCommand ref
  330. reference "subsection:scalarFieldConvertToRGB"
  331. \end_inset
  332. ).
  333. \end_layout
  334. \begin_layout Itemize
  335. L'éclairage provenant du ciel est représenté de manière discrète par un
  336. nombre limité de « rayons » lumineux, qui sont échantillonnés de manière
  337. uniforme sur l'hémisphère (ou la sphère complète si le mode 360° est activé).
  338. Il n'y a pas pour autant de lancer de rayons dans
  339. \emph on
  340. ShadeVis
  341. \emph default
  342. (on devrait plutôt parler de direction d'observation - Cf.
  343. l'article de Cignoni et al.
  344. pour plus d'informations).
  345. \end_layout
  346. \begin_layout Itemize
  347. Dans le cas des maillages, il est possible d'accélérer l'algorithme si le
  348. maillage est fermé (option «
  349. \begin_inset space ~
  350. \end_inset
  351. closed mesh
  352. \begin_inset space ~
  353. \end_inset
  354. », activée par défaut).
  355. \end_layout
  356. \begin_layout Itemize
  357. Dans le cas des nuages de points, il faut faire attention à ce que la résolution
  358. ne soit pas trop grande, sinon des «
  359. \begin_inset space ~
  360. \end_inset
  361. trous
  362. \begin_inset space ~
  363. \end_inset
  364. » peuvent apparaitre entre les points lors du rendu interne : ceci est simplemen
  365. t dû au fait que la densité d'un nuage est limitée, et que pour un niveau
  366. de zoom suffisant, on observera toujours des zones sans information entre
  367. les points.
  368. \end_layout
  369. \end_body
  370. \end_document