Text properties and FTGL
John Swensen
jpswensen at comcast.net
Sat Nov 1 08:18:42 CDT 2008
On Oct 31, 2008, at 10:21 PM, Bill Denney wrote:
> John Swensen wrote:
>> Thanks for pointing these out. I don't know what they are not doing
>> in mathTeX that I must be doing in my system calls, but mathTeX is
>> significantly faster. Since it is GPL and Octave is GPL I will
>> probably actually compile this into my Octave tests and render
>> straight to the openGL texture, rather than have it render to a file
>> and then read it back in. I think a time of ~0.1 seconds per LaTeX
>> string and appropriate caching of the results is acceptable.
>
> Just a thought, but could you render each result on a different page
> in
> the LaTeX output and make it just ~0.1 sec total instead?
>
> Have a good day,
>
> Bill
I just tested that and you are exactly right. Until I had more than
100 equations (each on a different page), the time did not go over
~0.15 seconds. Even at 400 equations it was only 0.3 seconds. I also
found out that with the poppler library I can do all the cropping and
such, so there is no need to call the pdfcrop script at all. This
will probably work after all.
As a side note, I did look at the mimeTeX program that was mentioned
in this thread. It is not a full TeX/LaTex interpreter, but has
almost all basic symbols and constructs. It essentially generates
bitmaps from a set of fonts described in one of the header files. It
looks like the author rendered all of the characters, accents, etc for
a specific size from Latex to a bitmap and then converted those
bitmaps into C arrays and put them all into a header file. This
method would scale horribly, but the nice thing is that it is wholly
contained in about 2 header files and one source file. For the "LaTeX-
free" Octave, maybe it makes sense to borrow from his (it is GPL also)
and instead of a single header file of font bitmaps, simply include
every 2 points from 8 to 20. This would look OK and we can still have
the runtime check for the full version of LaTeX.
So here is my proposed work plan for the next little while:
1) Get the most basic and easiest thing working: pdflatex+poppler to
render text to the OpenGL renderer
2) Get other cases working where pdflatex is not present, but LaTeX
is: latex+dvipdf+poppler to render text to the OpenGL renderer (as a
non-related side note, does anyone have a two sentence explanation as
to why pdflatex renders documents so much better than latex+dvipdf?)
3) Add in the non-LaTeX based converter from LaTeX to bitmap (low
priority)
I now have an OpenGL question about textures. Poppler converts the
PDF into a buffer of the form numpixels * (RGBA), where the PDF has
been scaled and the DPI chosen before this conversion to pixels takes
place, so things are anti-aliased and everything is beautiful. My
problem is that it renders a white background and that keeps showing
up when I render the texture to opengl with
glBegin(GL_QUADS);...glEnd();. With other programs I have used
before, I should either be able to (1) just set the color I want to be
the alpha color or (2) go through and set the value in the alpha
channel for each of the pixels where I want it to be transparent to 1
(or 255). I don't know how to do (1) with OpenGL and when I try to do
(2) nothing happens.
John Swensen
More information about the Octave-maintainers
mailing list