Firstly I want to thank you for your time and great effort you provide in this website.
I am a new researcher in this field, and I try to evolve my knowledge. I have read several articles and yourself, I learn some concepts and it is not quite sure though.
I took you to direct me,
I am grateful for your attention to my letter.
I do not understand what you are asking. What is it you do not understand, and what
kind of help do you need? If you ask a specific question, I will try to help you, but I cannot respond in any useful manner to just a general request for assistance.
SEN and Qin worked with vector images, Green with glyphs. And you, you used bitmaps. I have a question that intrigues me, the problem is in the calculated the distance or rendering the image?.
And thank you again
You can see the code for both the distance field generation and the real time rendering in the downloads and the demo I have posted on this site. Neither is a big problem, and both are useful. I encourage you to read the code. It is the best source of detailed information, and I published it so that people should be able to read it and make use of it, instead of having to re-implement everything in their own code.
Green used pixel images and a distance transform, just like I do. Neither Green's work nor my work is limited to any particular class of images, except that we both assume that the image is a strictly binary contour (i.e. only two colors, foreground and background), and that the contour can be represented reasonably well by a bitmap of limited resolution.
The difference is that I take better care to do the distance transform with good accuracy using an anti-aliased input image. That is my scientific contribution. Green used very high resolution binary images as input, which is a problem in production. He also used a very crude (but good enough) algorithm for the distance transform. My method is a lot faster and can be performed on the fly if needed. It can even be implemented on the GPU. I have a GPU version of the distance transform without the antialiasing done, and I started doing the anti-aliased version but never got around to finishing it. The demo without AA is here:
Jump flooding algorithm in GLSL
I can't offer any support for that code, but the method is explained in the article by Danielsson (a PDF is on the link above), and the GLSL details are presented in a fairly recent PhD dissertation by Guodong Rong. Google for "Jump Flooding Algorithm" and you will find it. As I said, I did a preliminary GPU implementation of my anti-aliased version. I did not finish it well enough to release it, but I can find the code and put it online if you are interested. It's just the simple version of the AA EDT, the one with the linear approximation to the distance function d_f, but at least it's more accurate than using a binary image as input.
The real time rendering is basically the same in Green's work and mine, but I use a better (and more standard) method for finding the gradient vectors in the shader. An alternative is also to store the gradient explicitly with the distance image. Green used an explicit finite difference instead of the dFdx() and dFdy() functions in GLSL. His method is slower, and has accuracy problems on ATI hardware where texture interpolation is performed in a fixed point texture coordinate system.
I hope that answered your questions. If not, ask again!
First, I want to thank you for your reply which was clear and focused.
I started reading the document and your code, if I find any problems I will contact you.
and thank you again.
Hello,
I’m delighted to find you another time in this show.
Bah, I looked over your work and I found nothing, I diverted to the work of Sen Parade above the silhouette map. This stocks in the alpha the coordinates of contours and when rendering, it has a formula to generate the pixel color.
I do not know what I quoted is correct or not?
Also I have questions and I will be very grateful if you answer me, How can we read the vector graphics with C + +.
I am sorry, but I do not understand what you are asking.
Please clarify your question if you can.
I find no question in your message except for the phrase
"how can we read the vector graphics in C++".
This is shader programming, in GLSL, and I do not
understand where or how C++ would be needed.
Rainy vacation day, lots of time to think.
Just to clarify: Pradeep Sen's "silhouette maps" is an early, pioneering
attempt to render contours. It still works, but I would really recommend
you to look at more recent methods that can also render curved
contours. Lots of authors have looked at this since Sen's paper.
Sen's method (and similar ones) also requires you to encode the contours
explicitly, which requires rather a lot of computations on 2D curves.
Distance field based methods like mine will do everything for yo
- just compute a distance field from a bitmap and you're set.
Antialiasing on minification is also handled better by a distance field.
Thank you very much for your answers that have been targeted.
I have some difficulty to form sentences because I write in French after I use a translator to translate them into English, that's why you can not follow me … Even I shot it a lot information from your answers.
Now I tried your method programmed to generate the input image. And do a little comparison with Green. And then I'll look for another method suitable for me.
I can read French. I am not good at writing it, but I can understand it
well enough to work my way through shorter texts. An automatic translation
also makes a lot more sense if you include your French original, so
feel free to write me using either language, or both!
Bonsoir,
Au départ je veux vous remercie infiniment de m'avoir aidez.
Je sais que je ne devais pas me plaindre, mais je ne sais pas quoi faire, je me suis bloqué dans ce domaine : je cherche et je cherche, je lis et relis sans résultat. Je reviens vers vous tous après une longue période de vous informer que j’ai rien fait. J’ai essayé d’exécuter votre programme (texture_creation), J’ai essayé de le convertir en langage C, et je n’ai jamais arrivé.
Le problème est que je n’ai pas une stratégie à suivre, je vous souhaite d’avoir me guider.
Je vous remercie encore une fois.
In a different thread in this forum you will find a C port of the texture creation program. It takes a grayscale TGA file as input. Please have a look at that. If that is not what you want, I must ask you to explain your problem in more detail. I still do not understand what you are trying to do.